我有一个列表和一个字典,我想用列表的值替换列表项。我的问题的简化版如下:
#This is a list
a=['dog', 'cat', 'cow']
#This is a dictionary
b={'dog': 'barks', 'cat': 'meows', 'cow': 'moos' }
现在列出一个[0],即在字典b中搜索狗,并且会找到关键狗,我希望它的价值咆哮代替列表a中的狗。
预期输出应该是这样的
a=['barks','meows','moos']
我已经能够在三个文本文件的帮助下完成这项工作,其中一个文本文件的格式为'key-value',另外两个我借助split()函数分别提取了键和值,然后稍后匹配索引位置以获得所需的结果。但是,问题是代码太长了。 我试着采用上面提到的方法但是无法替换这些值。
答案 0 :(得分:6)
您可以使用列表推导
索引字典>>> a = [b[i] for i in a]
>>> a
['barks', 'meows', 'moos']
答案 1 :(得分:6)
可能有很多方法可以做到这一点,这里还有一个:
map(b.get, a)
或
map(lambda x: b[x],a)
链接到map
doc:https://docs.python.org/2/library/functions.html#map
答案 2 :(得分:3)
如果您希望list
就地修改:
a=['dog', 'cat', 'cow']
b={'dog': 'barks', 'cat': 'meows', 'cow': 'moos' }
for idx,value in enumerate(a):
a[idx] = b[value]