python - 分组 python 中的列表

标签 python

我有一个列表:

 l = [2.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 12.0,96.0, 192.0, 480.0, 360.0, 504.0, 300.0]

我想以 10 的组大小差异对列表中的元素进行分组。 (即 0-10,10-20,20-30,30-40...等)

例如:

我正在寻找的输出是:

[ [2,4,5,6,7,8,10],[12],[96],[192],[300],[360],[480],[504] ]

我尝试使用:

list(zip(*[iter(l)] * 10))

但是得到错误的答案。

最佳答案

使用itertools.groupby除以(//) 10 后分组

from itertools import groupby
l = [2.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 12.0,96.0, 192.0, 480.0, 360.0, 504.0, 300.0]

groups = []
for _, g in groupby(l, lambda x: (x-1)//10):
    groups.append(list(g))      # Store group iterator as a list

print(groups)

输出:

[[2.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0], [12.0], [96.0], [192.0], [480.0], [360.0], [504.0], [300.0]] 

关于python - 分组 python 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55221996/

相关文章:

python - Django 中的开放时间对数据库的影响较小

python - 在 python 中执行代码时如何更改 URL 中的脚本名称

python - Flask - 让 `abort` 使用纯文本

python - 如果出现异常,请再次请求输入

python - 如何避免 evoque 中的 html 转义

python - python的循环问题

python - pytz.timezone ('Asia/Chongqing' )行为异常

python - 函数不在 Python 中输出值

python - 有没有办法在 Flask WTForms 中创建数据列表字段?

python - 脚本无法解析重定向网址中的标题