如何在 python 的列表中找到每个整数与模数的乘积

how to find product of each integer with modulo in a list in python

我正在尝试查找列表中每个元素的乘积。假设包含 1000 个元素,每个元素的值都高于 200,并且每次将一个元素与其他 one.Below 相乘时取 mod(%1000000007) - NZEC

    mul=1
t = int(input())
s=input()
for i in range(0,2*t,2):
    k=int(s[i])
    mul=(mul*k)%1000000007
print(mul)

INPUT 的格式为:

5

1 2 3 4 5

问题在于处理数字的方式,而不是您使用的操作。

我的意思是当你输入:

89 100 200 678 123  #EDIT- CHANGED FOR NO COMMAS

创建的变量是这样的字符串:

s = "89 100 200 678 123"

在 python 中,当您尝试像这样遍历字符串时:

s[i]

字符串被读取为列表,如下所示:

s = ['8','9',' ','1','0','0',' ','2','0','0',' ','6','7','8',' ','1','2','3']

所以这部分:

for i in range(0,2*t,2): #t=5
    k=int(s[i])

获取以下元素:

k='8'
k=' '
k='0'
k=' '
k='0' 

这可能就是您收到错误的原因。

我的解决方案是将输入作为列表获取,方法是:

numbers = input().split(" ")

然后用正常的为你会得到:

for i in range(t):
    k=int(numbers[i])
    mul=(mul*k)%1000000007
print(mul)

编辑:

我添加了适合我的代码,请告诉我它是否适合你:

mul=1
t = int(input()) #5
numbers = input().split(' ') #11 2 15 3 99
for i in range(t):
    k=int(numbers[i])
    mul=(mul*k)%1000000007
print(mul) #98010

我认为非零 return(NZEC) 存在是因为您试图在单个 variable.so 中获取由 space 分隔的多个输入以获取数组中的多个输入列出您需要将代码更改为这样的内容。

integers_list = [int(i) for i in input().split(' ')]
integers_list

output:-[22, 33, 11]

因此,现在我们列表中的数据已完美存储,您可以随心所欲地操作它们。

对于列表元素的乘法,你可以在这里查看:- How can I multiply all items in a list together with Python?