Python的append()只允许列表中的唯一项?

Zac*_*ach 3 python append data-structures

python文档暗示重复项可以存在于列表中,这由assignmnet支持:list = ["word1","word1"].但是,Python的append()似乎没有添加项目,如果它已经在列表中.我在这里遗漏了什么,或者这是故意尝试set()之类的行为?

>> d = {}
>> d["word1"] = 1
>> d["word2"] = 2
>> d["word2"] = 3

>> vocab = []
>> for word,freq in d.iteritems():
>> ...  vocab.append(word)

>> for item in vocab:
>> ...  print item
Run Code Online (Sandbox Code Playgroud)

收益:

word1 
word2
Run Code Online (Sandbox Code Playgroud)

哪个是第二个字2?

DSM*_*DSM 8

没有第二个单词2.

>>> d = {}
>>> d["word1"] = 1
>>> d["word2"] = 2
>>> d
{'word1': 1, 'word2': 2}
>>> d["word2"] = 3
>>> d
{'word1': 1, 'word2': 3}
Run Code Online (Sandbox Code Playgroud)

字典将特定键映射到特定值.如果您希望单个键对应多个值,通常会使用列表,并且defaultdict非常方便:

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d["word1"].append(1)
>>> d["word2"].append(2)
>>> d["word2"].append(3)
>>> d
defaultdict(<type 'list'>, {'word1': [1], 'word2': [2, 3]})
Run Code Online (Sandbox Code Playgroud)