如何在Python中每5个项目返回一次列表?

2 投票
5 回答
1099 浏览
提问于 2025-04-16 09:46

我正在使用Python,想要从一个列表中每5个项目提取一次,并把它们放到CSV格式里。

另外,如果在提取的时候少于5个项目,我需要用零填充,确保每次都有5个项目。

我使用的是一个比较旧的Python版本2.1,不能更改,所以我无法使用'iter'这个功能。

谢谢。

5 个回答

0

我觉得这个在Python 2.1里应该可以运行(我这边没有安装,没法测试)。我们不对输入的数组做任何修改。

# create input
a = list(range(20, 43))

values = [a[i:i+5] for i in range(0, len(a), 5)]
values[-1] += (-len(values[-1]) % 5) * [0]
csv = [','.join([str(v) for v in vs]) for vs in values]
3

这就是你想要的吗?

rows = []
while a_list:
    rows.append(a_list[:5])
    a_list = a_list[5:]
5

加上填充,这样可能会有效果。(在2.1版本中有列表推导式,对吧?我刚查了一下——它们是在2.0版本中加入的。)

a = the_list
a += [0] * (-len(a) % 5)
result = [a[i:i + 5] for i in range(0, len(a), 5)]

在较新的Python版本中,我会把最后一行换成

result = zip(*[iter(a)] * 5)

撰写回答