Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用列表理解键和dict键附加到列表_Python_Dictionary_List Comprehension - Fatal编程技术网

Python 如何使用列表理解键和dict键附加到列表

Python 如何使用列表理解键和dict键附加到列表,python,dictionary,list-comprehension,Python,Dictionary,List Comprehension,我有一张空名单和一本字典 subject = [] dict = {'1' : 'Test', '2':'Assignments', '3':'Homeworks', etc.} 我有另一个由用户生成的列表 start_prompt = ['1', '2', '5'] 我想查看list start_提示符,并将其用作将dict值附加到空列表主题的键。这是我试着做的,但不起作用 x = [subject.append(dict[i]) for i in start_prompt] 我是否遗漏

我有一张空名单和一本字典

subject = []
dict = {'1' : 'Test', '2':'Assignments', '3':'Homeworks', etc.}
我有另一个由用户生成的列表

start_prompt = ['1', '2', '5']
我想查看list start_提示符,并将其用作将dict值附加到空列表主题的键。这是我试着做的,但不起作用

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

我是否遗漏了一些非常明显的内容,或者这不是正确的做法?

我将执行以下操作,并检查字典中是否存在该键

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']

注意:不要将类型名称用作变量!(不要给你的字典命名为dict)

我将执行以下操作,并检查字典中是否存在该键

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']

注意:不要将类型名称用作变量!(不要给你的字典命名为dict)

我更喜欢另一个答案,但要有变化

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']

不是我推荐它,而是我更喜欢另一个答案

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']

我并不推荐它

只是想补充一点,@nick的解决方案不起作用的原因是调用
subject.append(dict[i])
返回None,所以它只是一个None的列表。@Hamatti尽管它的副作用仍然会发生<无论
x
是否为
None
s@Hamatti忘了包括那部分,为什么?(我知道这是一篇需要删掉的大文章)@AdamSmith,哦,对了,我读错了。我以为@nick是想填充
x
,而不是
subject
,因为他使用了列表理解谢谢!这起作用了。我知道这只是为了举例,但谢谢你的提示;)需要补充的是,@nick的解决方案不起作用的原因是调用
subject.append(dict[i])
返回None,所以它只是一个None的列表。@Hamatti,尽管它的副作用仍然会发生<无论
x
是否为
None
s@Hamatti忘了包括那部分,为什么?(我知道这是一篇需要删掉的大文章)@AdamSmith,哦,对了,我读错了。我以为@nick是想填充
x
,而不是
subject
,因为他使用了列表理解谢谢!这起作用了。我知道这只是为了举例,但谢谢你的提示;)谢谢在上面的例子中,我如何让它同时使用[1,2,5]和[1,2,5]?start_提示符由用户生成,以便idk他们是否会在逗号之间放置空格。我该怎么计划呢?谢谢!在上面的例子中,我如何让它同时使用[1,2,5]和[1,2,5]?start_提示符由用户生成,以便idk他们是否会在逗号之间放置空格。我该怎么计划呢?