Python 3.x 从序列号运行列表中提取连续数字及其相应值

Python 3.x 从序列号运行列表中提取连续数字及其相应值,python-3.x,Python 3.x,我想按元组列表中连续数字的多次重复分组 import more_itertools as mit df=pd.DataFrame({'a': [0,1,2,0,1,2,3,4], 'b':[2,10,24,56,90,1,3,6]}) for group in mit.consecutive _groups(df['a']) print(list(group) 我得到的输出是 [0,1,2],[0,1,2,3,4,5] 我期望的输出是 [(0,2),(1,10),(2,24)], [

我想按元组列表中连续数字的多次重复分组

import more_itertools as mit    
df=pd.DataFrame({'a': [0,1,2,0,1,2,3,4], 'b':[2,10,24,56,90,1,3,6]})
for group in mit.consecutive _groups(df['a'])
print(list(group)
我得到的输出是

[0,1,2],[0,1,2,3,4,5]
我期望的输出是

[(0,2),(1,10),(2,24)],
[(0,56),(1,90),(2,1),(3,3),(4,6)

任何帮助都将不胜感激

您可以压缩两个子列表,并将
排序
参数与lambda函数一起使用,该函数返回压缩序列中元组的第一项:

for group in mit.consecutive_groups(zip(df['a'], df['b']), ordering=lambda t: t[0]):
    print(list(group))
这将产生:

[(0, 2), (1, 10), (2, 24)]
[(0, 56), (1, 90), (2, 1), (3, 3), (4, 6)]

您可以压缩这两个子列表,并使用
排序
参数和lambda函数,该函数返回压缩序列中元组的第一项:

for group in mit.consecutive_groups(zip(df['a'], df['b']), ordering=lambda t: t[0]):
    print(list(group))
这将产生:

[(0, 2), (1, 10), (2, 24)]
[(0, 56), (1, 90), (2, 1), (3, 3), (4, 6)]

谢谢我可以知道如何使用索引或任何其他方式在组中选择每个列表,例如[(0,2),(1,10),(2,24)]吗?我尝试了“print(list(map(itemgetter(1),group))”,但是我得到了“[]”。您可以将
连续组的输出转换为一个列表,这样您就可以随意使用索引访问任何特定组:
组=list(mit.连续组(zip(df['a'],df['b']))
,然后访问
组[0]
例如。谢谢!我可以知道如何使用索引或任何其他方式在组中选择每个列表,例如[(0,2),(1,10),(2,24)]吗?我尝试了“打印(列表(映射(itemgetter(1),组)),但我得到了“[]”。您可以将
连续组的输出转换为列表,以便可以使用索引随意访问任何特定组:
组=列表(mit.连续组(zip(df['a'],df['b']),ordering=lambda t:t[0])
,然后访问
组[0]