【问题标题】:How to create list of lists for repeating elements如何为重复元素创建列表列表
【发布时间】:2021-09-20 23:19:06
【问题描述】:

我有以下列表 A,并希望创建列表列表 B。如何检测重复元素并避免后面的重复,因为两者之间有不同的元素?

A = [1,3,3,3,3,4,4,4,6,6,6,6,3,3,4,4,4,4,5]

B = [[1],[3,3,3,3],[4,4,4],[6,6,6,6],[3,3],[4,4,4,4],[5]]

【问题讨论】:

    标签: python slice


    【解决方案1】:

    itertools.groupby 可以为您做到这一点。

    >>> [list(x[1]) for x in itertools.groupby(A)]
    [[1], [3, 3, 3, 3], [4, 4, 4], [6, 6, 6, 6], [3, 3], [4, 4, 4, 4], [5]]
    

    【讨论】:

    • 如果我的 A 是这样的:A = [(a,1),(b,3),(c,3),,(b,3),(a,3),(b,4),(c,4),(d,4),(e,6),(a,6),(c,6),(d,6),(a,3),(b,3),(c,4),(d,4),(c,4),(e,4),(a,5)] 其中 a,b,c,d,e 无关紧要,但我仍然想根据 1,2,3... 进行分组?是否可以对给定的元组输入索引进行分组?
    • 您可以将key 参数用于groupby,类似于groupby(A, key=lambda v: v[1])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 2020-01-07
    • 2019-08-12
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    相关资源
    最近更新 更多