Создать кортеж из словаря, определенного из списка
Я использую 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