无法弄清楚如何增加列表中的某些值

时间:2013-07-08 23:31:19

标签: python list increment

所以我和我的伙伴正在互相帮助学习编程,我们一直在为自己提出挑战。他提出了一个有20个开关的地方。我们需要编写一个程序,首先打到每个其他开关,然后是每三个开关,然后是每个第四个开关,并让它输出打开和关闭。

我的头脑中有关于如何继续的基本想法但是,我不完全确定如何从列表中挑选出所有其他/第3 /第4个值。我想,一旦我弄清楚其中的一小部分应该很容易。

以下是清单:

start_list = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

我知道我可以通过以下方式选择每个元素:

start_list[2]

但是,如何选择所有其他元素,然后将其递增1?

3 个答案:

答案 0 :(得分:2)

使用Python's List Slicing Notation

start_list[::2]

切片的格式为[start:stop:step][::2]意味着,从开始到结束,获得每一个元素。这将返回每隔一个元素。

我相信你可以弄清楚如何获得每一个第三和第四个值:p。


要更改每个值,您可以执行以下操作:

>>> start_list[::2] = len(start_list[::2])*[1]
>>> start_list
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0]

答案 1 :(得分:1)

每隔一个开关:

mylist[::2]

每三分之一:

mylist[::3]

您也可以分配给它:

mylist=[1,2,3,4]
mylist[::2]=[7,8]

答案 2 :(得分:1)

>>> start_list = [0] * 20
>>> for i in range(2, len(start_list)):
...     start_list[::i] = [1-x for x in start_list[::i]]
... 
>>> start_list
[0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1]