我是 python 的新手,我有很长的列表(列表中大约有 100 个元素)。我想添加此列表的每第 4 个元素并将结果存储为 sum1、sum2、sum3 或 sum4 >。 我使用了以下代码:
while y in range(0,104):
if y%4==0:
sum=last_indexes[y]+sum
y=y+4
问题:
- 如果列表增加,编译时间也会增加。 python 中有什么函数可以加快这个过程吗?
- 此外,如果列表不是 4 的倍数,但我仍想将其存储在 sum1、sum2、sum3、sum4 中,那么应该进行哪些修改。
感谢您的时间和考虑
请您参考如下方法:
不,如果输入较大,您不能使代码以相同的速度运行(不是编译)。
处理此问题的更 Pythonic 方法是使用列表切片,即使列表的长度不是 4 的倍数也应该有效:
sum1 = sum(last_indices[::4])
sum2 = sum(last_indices[1::4])
sum3 = sum(last_indices[2::4])
sum4 = sum(last_indices[3::4])
a:b:c 的切片表示法表示“从索引 a 开始,转到索引 b,以 为增量>c”。当省略 a 时,假定为 0。当省略 b 时,假定它是列表的末尾。
