Python元组列表:通过独特元素组织到字典中

时间:2012-05-16 08:29:00

标签: python list dictionary tuples

我有一个元组列表,比如说:

list_of_tuples = [('a', 1),('b',2),('c',1),('a',2),('d',3)]

我需要为元组中的任何(唯一)第二个元素获取对应的值。例如作为字典。 输出:

dict = {1:['a','c'],2:['b','a'],3:['d']}

什么是最诡计多端的做法?帮助很多!

2 个答案:

答案 0 :(得分:4)

我可能会选择defaultdict像jamylak一样,但如果你想要一个“真正的”词典,你可以使用setdefault()

>>> list_of_tuples = [('a', 1),('b',2),('c',1),('a',2),('d',3)]
>>> d = {}
>>> for item in list_of_tuples:
...     d.setdefault(item[1],[]).append(item[0])
...
>>> d
{1: ['a', 'c'], 2: ['b', 'a'], 3: ['d']}

答案 1 :(得分:3)

>>> from collections import defaultdict
>>> list_of_tuples = [('a', 1),('b',2),('c',1),('a',2),('d',3)]
>>> d = defaultdict(list)
>>> for c,num in list_of_tuples:
        d[num].append(c)


>>> d
defaultdict(<type 'list'>, {1: ['a', 'c'], 2: ['b', 'a'], 3: ['d']})