回答
如果 “数组” 你的意思是 “清单”:
[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])
l是pep8失败 – Tom
我会在一般情况下添加单字母变量suck bigtime。 –
如果你的“阵列”是一个“清单”你可以做一个列表理解:
x = [1,2,3,6,7,8,1,1,1,6,7,5]
x = [item if item != 1 else 0 for item in x]
当然,这将创建一个新的名单。如果您的列表是非常大的,你不希望创建一个新的你可以这样做,而不是:
for i, item in enumerate(x):
if item == 1:
x[i] = 0
或者这样:
for i in xrange(len(x)):
if x[i] == 1:
x[i] == 0
如果列表真的很大......那么你的方法会变得很慢... – Chong
@Chong:第一个将是内存效率低下但速度更快,第二个将会更慢,但内存效率更高。但是,再次,如果它是一个Python列表,这些是实现它的方法(除了Sven的答案)。如果它是一个numpy数组,那么选项是不同的。 –
大型列表蒙山只有少数出现1
,以下是比天真for循环改变的地方名单更高效:
i = a.index(1)
try:
while True:
a[i] = 0
i = a.index(1, i + 1)
except ValueError:
pass
这也比天真的for循环的可读性,所以如果性能问题只用它。
我只是想提也可以使用numpy的阵列,在这种情况下,你可以做到以下几点:
import numpy
a = numpy.array([1,2,3,6,7,8,1,1,1,6,7,5])
numpy.where(a==1,0,a)
- 1. 如何替换MongoDB文档中的数组的所有元素?
- 2. 如何替换满足条件的数组的所有元素?
- 3. 如何替换ArrayAdapter的所有元素
- 4. 如何在python中调用我所有的数组元素?
- 5. JavaScript - 如何将int数组中的所有元素增加1
- 6. 如何替换数组的元素?
- 7. 替换Knockout.js中的所有元素observableArray
- 8. 如何替换数组元素到位
- 9. 我如何用一个值替换矢量的所有元素?
- 10. 我应该用canvas元素替换所有的img元素吗?
- 11. 如何使用前缀字符串替换数组中的所有元素?
- 12. 在熊猫数据框中,如何用元素y替换所有元素x?
- 13. 替换数组中的对角元素
- 14. 替换数组中的元素
- 15. 替换数组中的元素?
- 16. 替换对象数组中的元素
- 17. 替换数组中的单个元素
- 18. 在Python中替换数组中的元素
- 19. 我们如何获得Mongodb中的所有数组元素?
- 20. php - 用另一个数组的元素替换数组元素?
- 21. 如何将int数组转换为nullable int数组而不循环元素?
- 22. 反转int数组的所有三个数字元素
- 23. 如何转换元组的元组或INT在python
- 24. 如何将bash数组的所有元素转换为小写?
- 25. 搜索并替换所有元素
- 26. Python:列表:最后添加的对象元素替换所有其他元素
- 27. 你如何替换数组中的重复元素?
- 28. 如何正确替换数组中的值元素?
- 29. 如何替换/重置TCL数组中的元素值?
- 30. 如何用“OTHER”替换数组中的空元素?
是你的“阵列”实际上是一个列表,或者是不是真的'array.array的实例'? –