我尝试以相同的连续顺序将列表中的类似项目分组,例如:
my_list = ['blue', 'red', 'red', 'blue', 'green', 'red', 'blue', 'green', 'red', 'green', 'blue', 'green', 'blue', red]
字符串
我想要的结果是:
my_list = ['blue', [x2, 'red'], [x2, 'blue', 'green', 'red'], [x2, 'green', 'blue'], red]
型
我正在尝试将最多3个类似的项目组合在一起-如何执行此操作?
我可以将单个连续项目分组,但不知道如何将多个项目分组。
1条答案
按热度按时间njthzxwz1#
你可以迭代地用一个表示重复次数和值的元组来替换重复的项(例如
(2, 'blue' , 'green', 'red')
)。从模式大小1开始,增加大小,直到找不到更多的重复:字符串
使用itertools的
groupby
可以通过直接生成组而不是在for循环中迭代多次来缩短代码(但不一定更清晰):型