2012-02-23 99 views
-1

我可以有一個Python字典有2個相同的鍵,但具有不同的元素?Python字典w/2鍵?

+5

如果您要求密鑰,您會得到什麼? – 2012-02-23 12:47:02

+1

好的,但...爲什麼? – MMM 2012-02-23 12:57:00

回答

3

不,但您可以將2個元素添加到一個1鍵。 dictionary = {'a',[b,c]}。您可以使用列表對象在字典中包含多個值。

+0

我相信設置它兩次將取代原來的 – 2012-02-23 12:46:48

+1

@AramKocharyan:是的,但你可以添加/附加項目,而不是設置:'d ['a']。append('c')'。 'dict.setdefault()'方法可能會派上用場。例如,還可以查看[collections.defaultdict](http://docs.python.org/library/collections.html#collections.defaultdict)並使用'defaultdict(list)'或'defaultdict(set)'。 (和谷歌搜索 - 或搜索SO - 「python multidict」也可能會得到一些有趣的例子) – Steven 2012-02-23 12:59:49

-1

如果你願意,你可以創建一個「配對」的元組的列表,如:

thelist = [('foo', 'first_foo'), ('foo', 'second_foo'), ('bar', 'not_foo')] 

然後你可以檢索到thelist['foo']這種醜陋的黑客東西相當於:

for pair in thelist: 
    if pair[0] == 'foo': 
     print pair[1] 

,並得到

first_foo 
second_foo 
1

正常的方式做,這是一個defaultdict:

dd = defaultdict(list) 

dd['Your mother\'s key'].append('A') 
dd['Your mother\'s key'].append('B') 

dd['Your mother\'s key'] #=> ['A', 'B'] 

如果這不是很充足,可以創建自己的類。

+0

@eumiro:固定。 – Marcin 2012-02-23 13:17:00