【发布时间】:2016-12-02 19:40:29
【问题描述】:
我有这个简单的循环代码,它接收一行用户输入,并(在将其放入列表后)将单个单词作为键放入字典中,其中 lineCount 编号为值。有人可以解释一下如何调整它,以便如果在不同的行上输入相同的单词,它不会替换字典值,而是添加到它?
import string
lineCount = 1
q = raw_input("enter something")
d = {}
while q != "no":
q = q.split()
for word in q:
d[word] = lineCount
lineCount += 1
q = raw_input("enter something")
print d
例如,如果输入是第 1 行的“x y”和第 2 行的“x n”,则字典应打印为“x: 1,2 y:1 n:2”,但目前它只会打印“ x:2 y:1 n:2" 作为与键 x 关联的原始 lineCount 值被替换。如果可能,请避免在解决方案中导入集合,因为我宁愿先了解最长的方式。 非常感谢。
【问题讨论】:
-
为什么你不使用列表来存储你的值?例如
'x': [1, 2] -
一个列表会起作用,但由于我希望这段代码能够在每一行处理更长的句子,我认为字典解决方案更合适。 x 和 y 只是一个例子
-
它仍然是一个字典,但字典中的值是行号列表。
-
@user7222454 我的意思不是用列表替换你的字典,只是你的字典项的值是这样的
{'x': [1, 2], 'y': [1]} -
哦,对了,我明白了。那么一段示例代码会是什么样子呢?
标签: python python-2.7