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

时间:2015-06-15 17:54:47

标签: python dictionary

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

#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()函数分别提取了键和值,然后稍后匹配索引位置以获得所需的结果。但是,问题是代码太长了。 我试着采用上面提到的方法但是无法替换这些值。

3 个答案:

答案 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]