如何使用列表推导和dict键附加到列表

时间:2014-07-22 23:40:03

标签: python dictionary list-comprehension

我有一个空列表和一个字典

subject = []
dict = {'1' : 'Test', '2':'Assignments', '3':'Homeworks', etc.}

我有另一个用户生成的列表

start_prompt = ['1', '2', '5']

我想浏览列表start_prompt并将其用作将dict值附加到空列表主题的键。这是我尝试过的,但它不起作用

x = [subject.append(dict[i]) for i in start_prompt]

我错过了一些非常明显的东西,或者这不是正确的方法吗?

2 个答案:

答案 0 :(得分:4)

我会执行以下操作,并检查您的字典中是否存在该密钥。

d = {'1' : 'Test', '2':'Assignments', '3':'Homeworks'}
start_prompt = ['1', '2', '5']
subject = [d[i] for i in start_prompt if i in d]

>>> subject
['Test', 'Assignments']

P.S。不要使用类型名称作为变量! (不要将字典命名为dict

答案 1 :(得分:0)

我更喜欢另一个答案,但是为了变化

d = {'1' : 'Test', '2':'Assignments', '3':'Homeworks'}
start_prompt = ['1', '2', '5']
from operator import itemgetter
itemgetter(*d.viewkeys() & start_prompt)(d)
('Test', 'Assignments')
list(itemgetter(*d.viewkeys() & start_prompt)(d))
['Test', 'Assignments']

不是我推荐它