最近我有一些关于如何将某些值设置为零的问题 这是我的代码:
a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
b=[]
c=[]
e=[]
for st in range(0,10):
b.append(a[st])
if (b>5) or (b<3):
c=b
else:
c=0
e=c
print e
我希望结果是e=[1,2,0,0,0,6,7,8,9,10]
,但e
的结果始终不是我想要的。我使用我在本网站b[ma.logical_or(b<5,b>3)]=0
找到的另一种方式,它仍然没有#39; t我有什么好结果。有人帮我解决了这个问题吗?
答案 0 :(得分:1)
您可以使用切片和切片分配:
a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
a[2:5] = [0, 0, 0]
a[:10]
[1, 2, 0, 0, 0, 6, 7, 8, 9, 10]
答案 1 :(得分:0)
如果a
可以随机排序,那么简单的列表理解就可以了。
>>> a
[12, 14, 4, 2, 7, 3, 13, 5, 6, 1, 10, 9, 8, 15, 11]
>>> [0 if 3 <= x <= 5 else x for x in a]
[12, 14, 0, 2, 7, 0, 13, 0, 6, 1, 10, 9, 8, 15, 11]
然而,在你的关卡中,直接换循环可能更有教育意义。
>>> result = []
>>> for x in a:
... if 3 <= x <= 5:
... result.append(0)
... else:
... result.append(x)
...
>>> result
[12, 14, 0, 2, 7, 0, 13, 0, 6, 1, 10, 9, 8, 15, 11]
我仍然建议您在评论中观看我关联的视频。