【发布时间】:2018-01-13 09:29:27
【问题描述】:
我正在玩 Python,试图理解字典。我知道在与此错误相关之前已提出问题,但它们并不能帮助我理解我的问题。
我有以下代码
mailSender = dict()
count = 0
name = input("Enter file:")
handle = open(name)
for line in handle:
line = line.rstrip()
if not line.startswith("From "):
continue
count = count + 1
senderNames = line.split()
# print(splitLines[1])
print(senderNames[1])
if senderNames not in mailSender:
mailSender[senderNames] = 1
else:
mailSender[senderNames] = mailSender[senderNames] + 1
# print(mailSender)
我正在尝试为文本文件挑选电子邮件地址,然后找出发送电子邮件最多的人。
我不断收到以下错误:
if senderNames not in mailSender: TypeError: unhashable type: 'list'
我没有经验知道我哪里出错了,我希望有人能解释一下。
【问题讨论】:
-
senderNames是一个列表。列表不可散列,因为它们是可变的,并且字典键需要是可散列的。
标签: python python-3.x dictionary traceback