如何在Python中匹配和替换列表元素?

时间:2014-11-16 02:33:15

标签: python list

我在Python中有一个带有某些元素的列表。我想用另一个列表中的相应元素替换这些元素。

我想要另一个与列表中的元素相关的列表,如:

x = ['red','orange','yellow','green','blue','purple','pink']
y = ['cherry','orange','banana','apple','blueberry','eggplant','grapefruit']

这样就可以使用y中相应的元素创建一个新的列表,其元素在x中。所以

r = ['green','red','purple']

将成为

r = ['apple','cherry','eggplant']

由于

2 个答案:

答案 0 :(得分:2)

首先创建从一个列表到另一个列表的映射:

my_mapping = dict(zip(x, y))

zip部分主要是形式:dict期望参数是一对对的序列,而不是一对序列。

然后使用列表推导将此映射应用于r的每个成员:

new_r = [my_mapping[elem] for elem in r]

答案 1 :(得分:1)

词典是最好的选择。它们是键值对的映射,因此如果我使用键索引字典,它将返回该键下的值。

让我们使用带有两个列表的zip函数创建一个新词典:

mapper = dict(zip(x,y))

现在,如果我们想要将列表r更改为与新列表中的元素对应的列表:

r = [mapper[i] for i in r]

这将获取r中的每个元素并使用字典将其转换为对应元素。