Python:如何替换整数数组中所有相同元素?
我有一串数字:1,2,3,6,7,8,1,1,1,6,7,5
我想知道怎么把所有的1都换成... 比如说0?
如果是字符串的话,可以用 .replace("1", "0") 这个方法。
4 个回答
1
对于那些很长的列表,但里面只有少量的 1
的情况,下面这种方法在直接修改列表时比简单的循环更有效率:
i = a.index(1)
try:
while True:
a[i] = 0
i = a.index(1, i + 1)
except ValueError:
pass
不过,这种方法的可读性不如简单的循环,所以只有在性能很重要的时候才使用它。
4
我想提一下,你也可以使用numpy数组,这样的话你可以这样做:
import numpy
a = numpy.array([1,2,3,6,7,8,1,1,1,6,7,5])
numpy.where(a==1,0,a)
9
如果你说的“数组”是指“列表”:
[0 if e == 1 else e for e in a]
这里的 a
就是你的列表。
如果你说的“数组”是指 array.array
:
array.array('i', [0 if e == 1 else e for e in a])