这有点像python101的问题,但我想不出一种pythonic的方法来枚举断点列表,其中包含断点之间的所有整数。你知道吗
假设我有:
breaks = [4, 7, 13, 15, 18]
我想要
enumerated = [[4,5,6],[7,8,9,10,11,12],[13,14],[15,16,17],[18]]
(我的实际用例涉及的断点是年;我想要每个范围内的所有年)。
我可以用一个计数器循环breaks
,为每个间隔创建一个range
,并将其存储在一个列表中,但我怀疑这种枚举有一个简单的单行程序。效率是一个问题,因为我与数以百万计的记录工作。你知道吗
您可以使用简单的列表理解和
range()
你可以用拉链
使用一个自身偏移量为1(
zip(breaks, breaks[1:]
)的列表压缩是获得所有对的已知“技巧”。这会删除最后一个,所以我手动添加了它。你知道吗您可以创建一个生成器,它将节省内存:
相关问题 更多 >
编程相关推荐