如何调用此操作?

时间:2014-05-25 16:22:21

标签: python

我正在尝试解决一个我认为是标准Python任务的问题,并且已经在这里被问过,但我不知道它的正确词汇术语。

鉴于结构

((['a'], t1), (['a', 'b', 'c'], t2), (['c', 'd'], t3))

我需要得到这样的东西

(('a', [t1, t2]), ('b', [t2]), ('c', [t2, t3]), ('d',[t3]))

出于给定的数据。如何解决这个任务或者至少这个操作的名称是什么?

2 个答案:

答案 0 :(得分:8)

from collections import defaultdict

in_ = ((["a"], "t1"), (["a","b","c"], "t2"), (["c","d"], "t3"))
out = defaultdict(list)

for keys,val in in_:
    for key in keys:
        out[key].append(val)

给出了

{
    'a': ['t1', 't2'],
    'b': ['t2'],
    'c': ['t2', 't3'],
    'd': ['t3']
}

我会称之为引用列表对合。

答案 1 :(得分:4)

这称为转动一个表(或偶尔重塑)。通常,它使用专业数据结构(即表格)完成。

See some Pandas documentation稍作概述。