gpt4 book ai didi

python - 在python中将整数列表转换为范围

转载 作者:IT老高 更新时间:2023-10-28 22:14:02 25 4
gpt4 key购买 nike

python中是否存在可以将增加的整数列表转换为范围列表的东西

例如给定集合 {0, 1, 2, 3, 4, 7, 8, 9, 11} 我想得到 { {0,4}, {7,9}, {11,11} }。

我可以写一个程序来做这个,但是想知道python中是否有内置函数

最佳答案

使用 itertools.groupby()产生一个简洁但棘手的实现:

import itertools

def ranges(i):
for a, b in itertools.groupby(enumerate(i), lambda pair: pair[1] - pair[0]):
b = list(b)
yield b[0][1], b[-1][1]

print(list(ranges([0, 1, 2, 3, 4, 7, 8, 9, 11])))

输出:

[(0, 4), (7, 9), (11, 11)]

关于python - 在python中将整数列表转换为范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4628333/

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