gpt4 book ai didi

python 列表 : put all repeated items into one tuple

转载 作者:行者123 更新时间:2023-11-28 22:46:00 25 4
gpt4 key购买 nike

我将我的问题简化为:我有一个项目列表,我想将所有连续重复的项目放入一个元组中。

li = [1, 2, 2, 3, 4, 4, 4, 3, 5, 5, 1]
# now i want this:
result = [1, (2,2), 3, (4, 4, 4), 3, (5, 5), 1]

请帮帮我!

最佳答案

你可以使用 itertools.groupby将列表中的连续相等值组合在一起。这允许您首先获得包含连续值的元组列表;从长远来看,这可能(也可能不会)更容易使用。

>>> import itertools
>>> li = [1, 2, 2, 3, 4, 4, 4, 3, 5, 5, 1]
>>> tups = [tuple(t) for _, t in itertools.groupby(li)]

tups 是一个元组列表,如下所示:

[(1,), (2, 2), (3,), (4, 4, 4), (3,), (5, 5), (1,)]

要用单个元素替换所有长度为 1 的元组,您可以对 tups 运行另一个列表理解:

>>> [x[0] if len(x) == 1 else x for x in tups]
[1, (2, 2), 3, (4, 4, 4), 3, (5, 5), 1]

关于 python 列表 : put all repeated items into one tuple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27973719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com