因此,我是python语言的新手,并且我正在研究各种小问题以适应该语言。
它非常基础;两个整数数组和一个将每个级别加在一起的递归。
当我打印每个索引的值时,出现此错误:
打印(总计[i]) TypeError:“ int”对象不可下标
不太确定这意味着什么吗?我读过某个地方,您需要将其转换为字符串,但是不太确定该怎么做。
如果有人可以将我指向正确的方向,那就太好了。
total = 0
list1 = [207665, 340012, 860174, 830189, 39260, 502042, 582541, 595187, 748907, 627490, 871465]
list2 = [719571, 882606, 559276, 201999, 10167, 249982, 820978, 887870, 205461, 993892, 564934]
x = 11
for i in range(x):
total[i] = list1[i] + list2[i]
for i in range(x):
print(total[i])
答案 0 :(得分:1)
利用numpy来提高性能和优雅度
import numpy as np
list1 = np.array([207665, 340012, 860174, 830189, 39260, 502042, 582541, 595187, 748907, 627490, 871465])
list2 = np.array([719571, 882606, 559276, 201999, 10167, 249982, 820978, 887870, 205461, 993892, 564934])
print(np.add(list1,list2))
答案 1 :(得分:0)
您需要将total
用作list
而不是int variable
。变量没有任何索引,但是列表支持索引并存储多个值。喜欢:
total = [] #updated
list1 = [207665, 340012, 860174, 830189, 39260, 502042, 582541, 595187, 748907, 627490, 871465]
list2 = [719571, 882606, 559276, 201999, 10167, 249982, 820978, 887870, 205461, 993892, 564934]
x = 11
for i in range(x):
total.append(list1[i] + list2[i]) #updated
for i in range(x):
print(total[i])
答案 2 :(得分:0)
您的问题是,通过在开始时将总计赋值为0,将total初始化为整数。之后,您总是在第一个for循环中为其分配一个新值,但始终会覆盖现有值。然后引发该错误,因为您尝试遍历不是列表而是整数的total。正确的解决方案:
total = []
list1 = [207665, 340012, 860174, 830189, 39260, 502042, 582541, 595187, 748907, 627490, 871465]
list2 = [719571, 882606, 559276, 201999, 10167, 249982, 820978, 887870, 205461, 993892, 564934]
x = 11
for i in range(x):
total.append(list1[i] + list2[i])
for i in range(x):
print(total[i])
答案 3 :(得分:0)
在您的代码中total
是int
。因此,您不能使用total[i]
(只有列表和元组可以)
然后使用map()
更好,或者您可以这样写
[list1[pos] + list2[pos] for pos in range(x)]
。
list1 = [207665, 340012, 860174, 830189, 39260, 502042, 582541, 595187, 748907, 627490, 871465]
list2 = [719571, 882606, 559276, 201999, 10167, 249982, 820978, 887870, 205461, 993892, 564934]
total = map(lambda x,y:x+y,list1,list2)
for i in total:
print(i)