Отображение списка кортежей с использованием словаря - PullRequest
1 голос
/ 16 июля 2011

Учитывая следующий список кортежей:

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

и следующий словарь:

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

Есть ли простой способ отображения y на [('a', 'c'), ('n', 'u')]?

Ответы [ 2 ]

11 голосов
/ 16 июля 2011

Как насчет этого:

>>> 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')]
>>>
2 голосов
/ 16 июля 2011

Если элементы 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')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...