用python中存储在字典中的项的值替换列表项

Arp*_*wal 2 python dictionary

我有一个列表和一个字典,我想用字典的值替换列表项.我的问题的简化版本如下:

#This is a list
a=['dog', 'cat', 'cow']

#This is a dictionary
b={'dog': 'barks', 'cat': 'meows', 'cow': 'moos' } 
Run Code Online (Sandbox Code Playgroud)

现在列出一个[0]即狗在字典b中被搜索并且将找到关键狗并且我希望它的价值咆哮代替列表中的狗a.

预期的输出应该是这样的

a=['barks','meows','moos']
Run Code Online (Sandbox Code Playgroud)

我已经能够在三个文本文件的帮助下做到这一点,其中一个文本文件的格式为'key-value',另外两个我借助split()函数分别提取了键和值,然后再匹配索引位置以获得所需的结果.但是,问题是代码太长了.我尝试做上面提到的方法,但无法取代值.

Cor*_*mer 6

您可以使用列表推导索引字典

>>> a = [b[i] for i in a]
>>> a
['barks', 'meows', 'moos']
Run Code Online (Sandbox Code Playgroud)


Ale*_*mer 6

可能有很多方法可以做到这一点,还有一个方法:

map(b.get, a)
Run Code Online (Sandbox Code Playgroud)

要么

map(lambda x: b[x],a)
Run Code Online (Sandbox Code Playgroud)

链接到mapdoc:https://docs.python.org/2/library/functions.html#map