为什么python会将我的字典解释为一个列表?
我正在写一个程序来整理csv文件。它应该从文件中提取行,并根据字典中是否已有“捐赠者”,将“捐赠者”添加到字典中,或将行中的信息附加到旧值中。我得到了错误声明: 错误声明:文件“C:/Users/riley/Desktop/Python Files/MYLATEST1.py”,第27行,在 捐赠者[捐赠者]=[[数据]] builtins.TypeError:列表索引必须是整数或切片,而不是元组 我对python还不熟悉,但python似乎将我的字典解释为一个列表。这是怎么回事?若然,原因为何?谢谢你的帮助 def createDonorDirect():为什么python会将我的字典解释为一个列表?,python,list,dictionary,tuples,Python,List,Dictionary,Tuples,我正在写一个程序来整理csv文件。它应该从文件中提取行,并根据字典中是否已有“捐赠者”,将“捐赠者”添加到字典中,或将行中的信息附加到旧值中。我得到了错误声明: 错误声明:文件“C:/Users/riley/Desktop/Python Files/MYLATEST1.py”,第27行,在 捐赠者[捐赠者]=[[数据]] builtins.TypeError:列表索引必须是整数或切片,而不是元组 我对python还不熟悉,但python似乎将我的字典解释为一个列表。这是怎么回事?若然,原因为何?
出现错误的原因是您将施主指定给元组值作为键,这在这里是错误的,因为元组内容包含多个值。 代码为:-
>>> 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