Python以字符串形式打印Int

时间:2018-09-21 13:07:25

标签: python python-3.x

因此,我是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])

4 个答案:

答案 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)

在您的代码中totalint。因此,您不能使用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)