列表拆分为连续的 2 个列表 - 升序为 1
List Split into Consecutive Lists of 2 - Ascending by 1
对于列表:
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])
谢谢。
你也可以试试这个:
list_x = [1, 2, 3, 6, 7, 8, 1, 2, 6, 7]
list_new = [[a, b] for a, b in zip(list_x, list_x[1:])]
它应该可以正常工作并且非常简单。您获得了所需列表的列表。
对于具有连续编号的连续对,它是
values = [[a, b] for a, b in zip(list_x, list_x[1:]) if a + 1 == b]
print(values) # [[1, 2], [2, 3], [6, 7], [7, 8], [1, 2], [6, 7]]
对于所有连续的对
values = list(zip(list_x, list_x[1:]))
print(values) # [(1, 2), (2, 3), (3, 6), (6, 7), (7, 8), (8, 1), (1, 2), (2, 6), (6, 7)]
对于列表:
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])
谢谢。
你也可以试试这个:
list_x = [1, 2, 3, 6, 7, 8, 1, 2, 6, 7]
list_new = [[a, b] for a, b in zip(list_x, list_x[1:])]
它应该可以正常工作并且非常简单。您获得了所需列表的列表。
对于具有连续编号的连续对,它是
values = [[a, b] for a, b in zip(list_x, list_x[1:]) if a + 1 == b]
print(values) # [[1, 2], [2, 3], [6, 7], [7, 8], [1, 2], [6, 7]]
对于所有连续的对
values = list(zip(list_x, list_x[1:]))
print(values) # [(1, 2), (2, 3), (3, 6), (6, 7), (7, 8), (8, 1), (1, 2), (2, 6), (6, 7)]