无法计算lis中某些值的增量

2024-05-29 10:54:54 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我和我的伙伴正在互相帮助学习编程,我们一直在为自己提出挑战。他想出了一个有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?你知道吗


Tags: 程序元素列表编程startlist伙伴脑子里
3条回答

使用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]
>>> 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]

每隔一个开关:

mylist[::2]

每三分之一:

mylist[::3]

您也可以分配给它:

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

相关问题 更多 >

    热门问题