Python 一个列表和一个字典

Python a list and a dictionary

我有一个列表 (x) 和一个字典 (d)

x=[1,3,5]
d={1:a,2:b,3:c,4:d,5:e}

如您所见,一些变量与字典中的一些键相匹配

但是我怎样才能只打印键与列表中的变量匹配的值呢?

我尝试了一个 for 循环,但它 returns 只是关键。感谢您的帮助!

是这样的吗?

for key in d:
    if key in x:
        print d[key]

这将循环遍历字典中的每个键,如果键出现在 x 中,那么它将打印 x.

的值

如果您确定 x 中的所有键都在您的字典中

for key in x:
    print(d[key])

否则你可以先检查

for key in x:
    if x in d:
        print(d[key])

这样试试:

>>> x=[1,3,5]
>>> d={1:'a',2:'b',3:'c',4:'d',5:'e'}
>>> for key in d.keys():
...     if key in x:
...         print d[key]
... 
a
c
e

或者您可以使用 dict.get:

>>> for num in x:
...     print d.get(num,"not found")
... 
a
c
e

dict.get 将给出键的值,如果键在字典中找到 else defaultvalue

语法:dict.get(key[ default])

你可以使用这个单行列表理解:

[d[key] for key in x if key in d]

如果不是列表中的所有项目都是字典中的键,这也适用。

例如:

>>> d = {1:'a', 3:'b'}
>>> x = [1, 2]
>>> [d[key] for key in x if key in d]
... ['a']