2

私はタプルのリストを持っています。

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

タプルの (一意の) 2 番目の要素に対応する値を取得する必要があります。たとえば、辞書として。出力:

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

それを行う最もpythonicな方法は何ですか? 大いに感謝してください!

4

2 に答える 2

4

私はおそらくdefaultdictjamyakのようなものを使いますが、「本物の」辞書が必要な場合は、次を使用できます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']}
于 2012-05-16T08:33:37.233 に答える
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']})
于 2012-05-16T08:30:47.760 に答える