gpt4 book ai didi

python - 使用列表理解、元组和 itertools.groupby

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

这已经给我带来了一些麻烦,也许我的视力受到了影响。给定一个整数列表,生成一个新列表,其中每组相邻的重复项都已变成一个元组。

例如,给定列表:[1, 2, 3, 3, 4, 5, 5, 5, 6]

生成的列表包含:[1, 2, (3, 3), 4, (5, 5, 5), 6]

我想使用列表理解来实现这一点。

numbers = [1, 2, 3, 3, 4, 5, 5, 5, 6]

it = itertools.groupby(numbers)
numbers = [tuple(group) if len(tuple(group)) > 1 else key for key, group in it]

我期待的结果:

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

我得到的结果:

[1, 2, (), 4, (), 6]

插入的元组显然是空的 - 但同时它们不是空的,因为它们必须有多个元素才能首先插入。这是怎么回事?我是 python 的新手,即使用尽了我能想到的所有关键字,我仍然无法在网上找到类似的问题。我确定这很简单,我只是看不到它。感谢您的帮助。

最佳答案

如果你想做list comprehension

>>>l = [1, 2, 3, 3, 4, 5, 5, 5, 6]
>>>[k[0] if len(k) == 1 else tuple(k) for k in [list(j) for i,j in itertools.groupby(l)]]
[1, 2, (3, 3), 4, (5, 5, 5), 6]

关于python - 使用列表理解、元组和 itertools.groupby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43305500/

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