【发布时间】:2021-06-27 20:56:39
【问题描述】:
对于列表:
list_x=[1,2,3,6,7,8,1,2,6,7]
如何将其拆分为由 2 个元素组成的单独列表,这些元素是连续的且按 1 递增。
期望的输出
list_a=[1,2]
list_b=[2,3]
list_c=[6,7]
list_d=[7,8]
list_e=[1,2]
list_f=[6,7]
请注意,'list_x' 可以是任意长度,并且需要将此列表分成 2 对。每对都连续加 1。
这是一次尝试:
list_a = list_x.ne.shift(fill_value=list_a.iat[0])
谢谢。
【问题讨论】:
-
简单的方法是
x = list( [a,b] for a,b in zip(list_x[:-1],list_x[1:])。 -
您真的希望它们在全局命名空间中被称为“list_a”、“list_b”还是可以是列表列表?如果是后者,那么
[list_x[i:i+2] for i in range(len(list_x)-1) if list_x[i] + 1 == list_x[i+1]]就可以了。否则,您必须使用globals处理讨厌的事情,或者只是从您的问题中复制并粘贴“所需的输出”;) -
感谢您提供这些答案-通过下摆完全理解。此外 - 列表不必称为“list_a”、“list_b”等 - 这只是为了说明我所追求的。