我有一个listx =[1,2,3,4,5,6,7,8,9]
我想更改列表中的每 N 个项目。例如,我想为每 2 项步骤进行修改,假设我想通过 +1 进行修改。所以我想得到结果=[1+1,2,3+1,4,5+1,6,7+1,8,9+1] =[2,2,4,4,6,6,8,8,9]
我可以通过使用 for-loop 来做到这一点,通过添加计数器变量,然后通过 counter%2==0 检查计数器。但这次我只是好奇使用单行语句。这是我想要的=
newlistx=[i+1 for i in listx]
<- 这将修改所有项目,所以我希望我可以在这个迭代过程中使用一些内部索引,变成这样:
newlistx=[i+1 if (__indexing__%step==0) else i for i in listx]
其中步骤 = 2。
实际上,我可以使用 list.index() 函数,如下所示:
newlistx=[i+1 if listx.index(i)%2==0 else i for i in listx]
这个问题只有在所有项目都是唯一的情况下才有效,如果我得到的项目具有相同的值,那么 index() 将返回错误的值。
同样,我只是好奇我是否可以获取一些内部索引或计数器(如果存在)。