我有值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]
答案 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]