为什么python会将我的字典解释为一个列表?

为什么python会将我的字典解释为一个列表?,python,list,dictionary,tuples,Python,List,Dictionary,Tuples,我正在写一个程序来整理csv文件。它应该从文件中提取行,并根据字典中是否已有“捐赠者”,将“捐赠者”添加到字典中,或将行中的信息附加到旧值中。我得到了错误声明: 错误声明:文件“C:/Users/riley/Desktop/Python Files/MYLATEST1.py”,第27行,在 捐赠者[捐赠者]=[[数据]] builtins.TypeError:列表索引必须是整数或切片,而不是元组 我对python还不熟悉,但python似乎将我的字典解释为一个列表。这是怎么回事?若然,原因为何?

我正在写一个程序来整理csv文件。它应该从文件中提取行,并根据字典中是否已有“捐赠者”,将“捐赠者”添加到字典中,或将行中的信息附加到旧值中。我得到了错误声明:

错误声明:文件“C:/Users/riley/Desktop/Python Files/MYLATEST1.py”,第27行,在 捐赠者[捐赠者]=[[数据]] builtins.TypeError:列表索引必须是整数或切片,而不是元组

我对python还不熟悉,但python似乎将我的字典解释为一个列表。这是怎么回事?若然,原因为何?谢谢你的帮助

def createDonorDirect():


出现错误的原因是您将施主指定给元组值作为键,这在这里是错误的,因为元组内容包含多个值。 代码为:-

>>> data=['HI','Hello','How','are','you','my','name','is']
>>> donor = ''.join(data[3,5,7])
Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    donor = ''.join(data[3,5,7])
**TypeError: list indices must be integers or slices, not tuple**
>>> 
>>数据=['HI'、'Hello'、'How'、'are'、'you'、'my'、'name'、'is']
>>>施主=''.join(数据[3,5,7])
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
施主=''.join(数据[3,5,7])
**TypeError:列表索引必须是整数或切片,而不是元组**
>>> 
第二个简化代码:-

>>> data[3,5,7]
Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    data[3,5,7]
TypeError: list indices must be integers or slices, not tuple
>数据[3,5,7]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
数据[3,5,7]
TypeError:列表索引必须是整数或切片,而不是元组

元组声明有时有点令人困惑

例如:
SOME_常量=1,
SOME_常量=(1,)
相同。两者都是元组

另一方面,
SOME_常量=(1)
将与
SOME_常量=1
相同。两者都是整数

在您的情况下,您只需更改:

donor = ''.join(data[3,5,7])

例如:

data=['A','B','C','D','E','F','G','H']
print ''.join(data[3] + data[5] + data[7])
DFH

数据[3,5,7]
更可能是罪魁祸首。可能是别的什么东西弄错了错误信息;可能是你在Python打开源代码后编辑了它或其他什么。有没有关于如何以不同的方式格式化数据[3,5,7]的建议,但它仍然包含识别我的“捐赠者”的所有必要信息?
donor = ''.join(data[3] + data[5] + data[7])
data=['A','B','C','D','E','F','G','H']
print ''.join(data[3] + data[5] + data[7])
DFH