如何基于具有要替换的值的数组将数组中的值归零

时间:2018-03-16 22:04:13

标签: python

我有值sourceArray的数组,我有数组,其值替换为替换。我想替换sourceArray中与toReplace数组中的值相等的所有值。

在Python中有一些聪明的方法吗?

E.g。

 sourceArray = [0,1,2,3,4,5,5,6,7]
 toReplace = [5,6]

替换后我想要

 sourceArray = [0,1,2,3,4,0,0,0,7]

2 个答案:

答案 0 :(得分:5)

使用条件表达式列出理解:

[0 if i in toReplace else i for i in sourceArray]

如果toReplace列表太大,最好将其设为set以获得O(1)查找。

示例:

In [21]:  sourceArray = [0,1,2,3,4,5,5,6,7]
    ...:  toReplace = [5,6]
    ...: 

In [22]: [0 if i in toReplace else i for i in sourceArray]
Out[22]: [0, 1, 2, 3, 4, 0, 0, 0, 7]

答案 1 :(得分:1)

你可以使用列表推导:

 new_list = [x if toReplace.count(x)==0 else 0 for x in sourceArray]