Создать кортеж из словаря, определенного из списка

Я использую Python 3.5, у меня есть словарь:

dict =  {1:'entry 1', 2:'entry 2', 3:'entry 3', 4:'entry 4'}

и список:

numlist = [1,3,4]

Я хочу создать кортеж из словаря на основе элементов в списке. Итак, в приведенном выше примере мой желаемый результат:

('entry 1','entry 3','entry 4')

Я не уверен, как это сделать, однако. Я старался:

templist = ()
for i in numlist:
    templist = (dict[i]) + templist

Однако это через "TypeError: Не удается преобразовать объект 'tuple' в str неявно"

Я не уверен, как еще справиться с этим, любая помощь будет оценена.

4 ответа

Решение

как насчет использования понимания списка?

tuple([dict[e] for e in numlist])

Использовать этот:

>>> tuple((dict[num] for num in numlist))
('entry 1', 'entry 3', 'entry 4')

Вы можете использовать списки:tuple([dict[x] for x in numlist])

Я сохранил ваше решение, даже если оно не питоническим способом:

dict =  {1:'entry 1', 2:'entry 2', 3:'entry 3', 4:'entry 4'}
    numlist = [1,3,4]
    templist = ()
    for i in numlist:
        templist = (dict[i],) + templist

    print templist
Другие вопросы по тегам