python如何获取列表中每组元素的和(每组n个元素)
时间: 2024-09-06 21:02:20 浏览: 30
在Python中,如果你想要获取列表中每组元素的和(每组n个元素),可以使用`itertools`模块中的`grouper`函数来帮助分组,然后对每组进行求和操作。以下是一个简单的示例代码:
```python
from itertools import zip_longest
def grouper(n, iterable, fillvalue=None):
"将数据收集成固定长度的块"
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)
def sum_of_n_group(iterable, n):
"""返回一个列表,其中包含按每n个元素分组的和"""
return [sum(group) for group in grouper(n, iterable)]
# 示例使用
data_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3
result = sum_of_n_group(data_list, n)
print(result) # 输出每组元素的和,例如:[6, 15, 12]
```
上面的`grouper`函数是一个通用的函数,它可以将任何迭代器中的元素分组。`zip_longest`用于分组,`fillvalue`参数在迭代器长度不是`n`的整数倍时使用,以填充缺失的值。
在`sum_of_n_group`函数中,我们使用列表推导式结合`sum`函数来计算每组的和,并将结果存储在新列表中返回。
阅读全文