我得了listx =[1,2,3,4,5,6,7,8,9]我想改变名单上的每一项。例如,我想每两个项目步骤修改一次,假设我想修改+1。所以我想得到结果我可以使用for循环,通过添加counter变量,然后按计数器%2==0检查计数器来完成此操作。但这次我只是好奇使用单行语句。这是我想要的=[1+1,2,3+1,4,5+1,6,7+1,8,9+1] =[2,2,4,4,6,6,8,8,9] newlistx=[i+1 for i in listx]其中步骤=2。实际上,我可以使用list.index()函数,如下所示:newlistx=[i+1 if (__indexing__%step==0) else i for i in listx]此方法的问题仅在所有项都是唯一的情况下才有效,如果我得到的项具有相同的值,则index()将返回错误的值。再次,我只是好奇,如果我可以抓取一些内部索引或计数器,如果存在。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 您可以使用enumerate函数。newlist = [x + 1 if n % step == 0 else x for (n, x) in enumerate(oldlist)]enumerate函数在序列上迭代并生成带有索引的对象。 (adsbygoogle = window.adsbygoogle || []).push({});
09-25 18:53