gpt4 book ai didi

python - 删除列表中连续整数的最快且更有效的方法是什么?

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

如果我有一个类似的列表:infs = [0, 19, 20, 21, 24]我想删除连续的值,但只保留该组中的第一个值,所以这里我期望一个结果:infs = [0, 19, 24]

我的尝试:

 for k,(i,j) in enumerate(zip(infs, infs[1:])):
print(k,i,j)
if j-i == 1:
del infs[k+1]

它留下“21”,因为它已被删除,所以在循环中删除它是个坏主意。

最佳答案

您可以通过将列表与自身压缩但使用其第一个项目的填充来对列表中的相邻项目进行配对,以便您可以使用列表理解来过滤掉仅相差 1 的相邻对:

[b for a, b in zip(infs[:1] + infs, infs) if b - a != 1]

这将返回:

[0, 19, 24]

关于python - 删除列表中连续整数的最快且更有效的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55578072/

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