我想在一行循环中在列表范围内添加数字零。
基本上我想做的只是一行:
for position in range(43,53):
rows[0][position] = 0
我尝试过的是这个,但是我认为这是不正确的:
rows[0][0 for position in range(43, 54)]
答案 0 :(得分:3)
您可以通过切片来实现:
rows[0][43:53] = [0 for i in range(10)]
答案 1 :(得分:0)
您可以使用切片分配。 repeat
创建一个长度为0的必要长度的序列。
rows[0][43:53] = itertools.repeat(0, 10)
(我主要使用repeat
,因为我错误地认为list.__setitem__
只会尝试消耗尽可能多的元素以填充所需的范围。这似乎是错误的,尽管通常来说,可以实现__setitem__
那样懒惰,在这种情况下,您只需编写whatever[43:54] = itertools.repeat(0)
,而不必预先计算所需的0数。)
答案 2 :(得分:0)
这应该工作正常。再看看其他发布的解决方案
rows[0][43:53] = [0] * 10