gpt4 book ai didi

python - 在 Python 中使用列表理解创建按预定义值排序的二维列表

转载 作者:行者123 更新时间:2023-12-04 12:31:52 24 4
gpt4 key购买 nike

我有一个函数 number_sort(),它需要返回一个包含 4 个列表的二维列表。函数需要在 0-12、13-25、26-38 和 39-51 之间对给定的数字进行排序,如下所示:

给定: [2, 2, 3, 4, 1, 13, 15, 51, 10, 15, 28]

返回: [[1, 2, 2, 3, 4, 10], [13, 15, 15], [28], [51]]

我试着用列表推导来做。

def number_sort(cards: list):
return [[item for item in cards if i * 13 <= item <= (i * 12 + 1)] for i in range(4)]

但是当我给出上面给出的确切示例列表时,它返回 [[1], [13], [], []]

谁能告诉我我做错了什么,我该如何解决?

最佳答案

IIUC,您想使用 13 作为楼层分隔符进行分组:

from itertools import groupby

[list(g) for _, g in groupby(sorted(l), key=lambda x: x//13)]

输出:

[[1, 2, 2, 3, 4, 10], [13, 15, 15], [28], [51]]

关于python - 在 Python 中使用列表理解创建按预定义值排序的二维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68523592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com