Python TypeError:只能将列表(而不是“int”连接到列表[使用字典]
本质上,我是通过使用字典创建一个计数,每次它在文本文件中看到一个“1”,它就会向数组中添加一个Python TypeError:只能将列表(而不是“int”连接到列表[使用字典],python,dictionary,Python,Dictionary,本质上,我是通过使用字典创建一个计数,每次它在文本文件中看到一个“1”,它就会向数组中添加一个 Letters = ["A","B,"C","D","E","F"] d= {} d["A"] = [0] d["B"] = [0] d["C"] = [0] d["D"] = [0] d["E"] = [0] file = open('test1.txt','r') for line in file: line_array = line.strip("\n").split(",")
Letters = ["A","B,"C","D","E","F"]
d= {}
d["A"] = [0]
d["B"] = [0]
d["C"] = [0]
d["D"] = [0]
d["E"] = [0]
file = open('test1.txt','r')
for line in file:
line_array = line.strip("\n").split(",")
for x in range(5):
if line_array[x] == "1":
for y in Letters:
d[y][0] = d[y][0] + 1
顺便说一句,文本文件的格式如下
1,0,3,0,2
0,2,1,0,3
ETC
编辑对不起,用错了你从来没有真正使用过你的字典
Letters= ["A","B","C","D","E"]
d= {key: 0 for key in Letters}
print(Letters)
file = open('test1.txt','r')
for line in file:
line_array = line.strip("\n").split(",")
for x in range(5):
if line_array[x] == "1":
for i, value in enumerate(Letters):
if i == x:
d[value] = d[value] + 1
#print(candidatescores) # No idea where this comes from
我真的不明白为什么要在简单整数上使用列表。(挠头),你怎么能用字符串访问列表索引?
字母
在你的代码中是一个列表
而不是dict
(见第一行)d
是一本字典,但您没有使用它。请具体说明错误。我看到的第一个问题是Letters
是一个列表,因此Letters[“a”]
应该给您一个TypeError
,因为列表需要整数索引。您发布的代码在第二行失败。您试图使用一个列表,就像它已经是一个字典一样。这会导致文本文件中的所有行相加,并且每个键的值都是相同的固定值。请注意,这是因为您需要一个字典,但使用普通列表/元组本身的问题就要小得多。为什么不使用csv来读取csv文件呢?另外,如果i=x
缺少等号line.rstrip()
将删除换行符。最后,file
是Python中的保留字:)