使用字典映射元组列表

时间:2011-07-15 20:31:01

标签: python dictionary

给出以下元组列表:

y = [(1, 2), (3, 5)]

和以下词典:

d = {1: 'a', 2: 'c', 3: 'n', 4: 'y', 5: 'u'}

有一种简单的方法可以将y映射到[('a', 'c'), ('n', 'u')]吗?

2 个答案:

答案 0 :(得分:11)

这个怎么样:

>>> y = [(1, 2), (3, 5)]
>>> d = {1: 'a', 2: 'c', 3: 'n', 4: 'y', 5: 'u'}
>>>
>>> [(d[k], d[v]) for k,v in y]
[('a', 'c'), ('n', 'u')]
>>>

答案 1 :(得分:2)

如果y的元素不能保证为2元组,则可以使用:

>>> d = {1: 'a', 2: 'c', 3: 'n', 4: 'y', 5: 'u'}
>>> y = [(1, 2), (3, 5, 4)]
>>> [tuple(d[i] for i in tup) for tup in y]
[('a', 'c'), ('n', 'u', 'y')]