我正在尝试解决一个我认为是标准Python任务的问题,并且已经在这里被问过,但我不知道它的正确词汇术语。
鉴于结构
((['a'], t1), (['a', 'b', 'c'], t2), (['c', 'd'], t3))
我需要得到这样的东西
(('a', [t1, t2]), ('b', [t2]), ('c', [t2, t3]), ('d',[t3]))
出于给定的数据。如何解决这个任务或者至少这个操作的名称是什么?
答案 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)
这称为转动一个表(或偶尔重塑)。通常,它使用专业数据结构(即表格)完成。