将列表与字典进行比较以在python中创建新列表

时间:2016-08-17 19:29:54

标签: python python-3.x python-3.5

我有一个列表和一个字典。我想将列表值与字典的键进行比较。如果我有:

mydict = {'Hello':1,'Hi':2,'Hey':3}

mylist = ['Hey','What\'s up','Hello']

我希望输出为:

output = [3, None, 1]

谢谢!

我尝试了[mydict[i] for i in mylist],但我得到的是错误,而不是无。然后我尝试使用嵌套for循环(我删除了那个位),但我认为这是低效的。

2 个答案:

答案 0 :(得分:3)

使用list comprehension

output = [ mydict.get(key) for key in mylist ]

请注意,如果密钥不在dict中,dict.get会返回None

答案 1 :(得分:2)

使用dict.get(),如果密钥不存在,则默认为None

[mydict.get(k) for k in mylist]
>>> mydict = {'Hello':1,'Hi':2,'Hey':3}
>>> mylist = ['Hey','What\'s up','Hello']
>>> out = [mydict.get(k) for k in mylist]
>>> out
[3, None, 1]