PYTHON不明白为什么将值追加到字典中的for循环是';行不通
我有一个文本文件,其中包括 “不要试图成为一个成功的人,而要努力成为一个有价值的人。 深入观察大自然,你就会更好地理解一切。 智力的真正标志不是知识,而是想象力。 我们不能用我们创造问题时的思维方式来解决问题。 态度的软弱变成性格的软弱。 你不能因为坠入爱河而责怪地心引力。 愚蠢与天才的区别在于天才有其局限性。” 我试图将单词作为键放入字典,并将它们的行号作为值 这是我的代码,我不知道为什么它不起作用PYTHON不明白为什么将值追加到字典中的for循环是';行不通,python,dictionary,Python,Dictionary,我有一个文本文件,其中包括 “不要试图成为一个成功的人,而要努力成为一个有价值的人。 深入观察大自然,你就会更好地理解一切。 智力的真正标志不是知识,而是想象力。 我们不能用我们创造问题时的思维方式来解决问题。 态度的软弱变成性格的软弱。 你不能因为坠入爱河而责怪地心引力。 愚蠢与天才的区别在于天才有其局限性。” 我试图将单词作为键放入字典,并将它们的行号作为值 这是我的代码,我不知道为什么它不起作用 dictionary = dict() i = 0 for line in f
dictionary = dict()
i = 0
for line in fp:
for word in line.lower().split():
if word in dictionary:
dictionary[word].append(i)
else:
dictionary[word] = i
i = i + 1
以下是更正:
else:
dictionary[word] = [i]
以下是更正:
else:
dictionary[word] = [i]
我认为这里的一般问题是字典键必须是唯一的。。。这个句子中有多少个单词至少重复了2次 重复单词列表: (试着,不要,成为,一个,人,但是,你,是,我们,弱点,天才) 然后像“不能”这样的词也会被拆分为“可以”和“t”(你想不想处理t?) 您要求的示例:
拥有2个key:value对的
'try':1
我认为这里的一般问题是字典键必须是唯一的。。。这个句子中有多少个单词至少重复了2次
重复单词列表:
(试着,不要,成为,一个,人,但是,你,是,我们,弱点,天才)
然后像“不能”这样的词也会被拆分为“可以”和“t”(你想不想处理t?)
您要求的示例:
具有2x key:value对的
“try”:1
第一次将单词作为键插入时,其值必须是列表,而不是整数,以便下次找到相同的单词时可以附加到列表中。但不能附加到int
下面是固定代码:
dictionary = dict()
i = 0
for line in fp:
for word in line.lower().split():
if word in dictionary:
dictionary[word].append(i)
else:
dictionary[word] = [i]
i = i + 1
一种更简洁的方法是使用默认dict,默认值为列表
from collections import defaultdict
dictionary = defaultdict(list)
for i,line in enumerate(fp):
for word in line.lower().split():
dictionary[word].append(i)
第一次将单词作为键插入时,其值必须是列表,而不是整数,以便下次找到相同的单词时可以附加到列表中。但不能附加到int 下面是固定代码:
dictionary = dict()
i = 0
for line in fp:
for word in line.lower().split():
if word in dictionary:
dictionary[word].append(i)
else:
dictionary[word] = [i]
i = i + 1
一种更简洁的方法是使用默认dict,默认值为列表
from collections import defaultdict
dictionary = defaultdict(list)
for i,line in enumerate(fp):
for word in line.lower().split():
dictionary[word].append(i)
“它不工作”是什么意思?一旦您将
dictionary[word]
设置为i
,一个整数,您希望dictionary[word].append()
下次遇到该单词时做什么?错误是“'int'对象没有属性'append'”您需要确保字典中条目的值是数组。@拉萨德数组和列表是不同的东西。OP想要一个列表。“它不起作用”是什么意思?一旦您将dictionary[word]
设置为i
,一个整数,您希望dictionary[word].append()
下次遇到该单词时做什么?错误是“'int'对象没有属性'append'”您需要确保字典中条目的值是数组。@拉萨德数组和列表是不同的东西。OP想要一份清单,请解释一下。OP显然不太理解列表。请解释一下。OP显然不太理解列表,这很有道理。谢谢这很有道理。谢谢