我似乎无法将数组中的整数相乘。
grid = [8, 2, 22, 97, 38, 35, 29, 76, 51, 87]
digits = 1
startPos = 0
total = []
for i in range(0,7):
for i in range(startPos, startPos+3):
value = int(grid[i:i+1])
digits = digits * value
total.append(digits)
startPos = startPos + 1
digits = 1
我一直收到错误
int() argument must be a string, a bytes-like object or a number, not 'list'
据我所知,我的数组中的值是整数。我做错了什么?为了澄清,我正在搜索数组中任意3个相邻数字的最大值。
答案 0 :(得分:2)
grid[i:i+1]
将为您提供一个列表,您无法将列表传递给int
函数,而不是只能使用i
作为索引来获取元素:< / p>
int(grid[i])
如果您不想将int
功能应用于元素列表,可以使用map
:
map(int,my_list)
答案 1 :(得分:0)
你应该使用:
value = grid[i:i+1][0]
而不是value = int(grid[i:i+1])
因为grid[i:i+1]
是len 1的列表。
for i in range(0,7):
for i in range(startPos, startPos+3):
print(i,i+1,grid[i:i+1], grid[i:i+1][0])
0 1 [8] 8
1 2 [2] 2
2 3 [22] 22
1 2 [2] 2
...