给出以下元组列表:
y = [(1, 2), (3, 5)]
和以下词典:
d = {1: 'a', 2: 'c', 3: 'n', 4: 'y', 5: 'u'}
有一种简单的方法可以将y映射到[('a', 'c'), ('n', 'u')]
吗?
答案 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')]