Python TypeError:只能将列表(而不是“int”连接到列表[使用字典]

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(",")

本质上,我是通过使用字典创建一个计数,每次它在文本文件中看到一个“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(",")
    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中的保留字:)