我试图删除位于列表中连续数字之间的数字。例子:
形式 [1, 3, 5, 6, 7, 8, 9, 11, 12, 13, 18]
到[1, 3, 5, 9, 11, 13, 18]
你会丢弃 [6, 7, 8] 和 [12]
最佳答案
你可以试试 itertools.groupby
:
from itertools import groupby
lst = [1, 3, 5, 6, 7, 8, 9, 11, 12, 13, 18]
out = []
for _, g in groupby(enumerate(lst), lambda k: k[0] - k[1]):
g = list(g)
out.append(g[0][1])
if len(g) > 1:
out.append(g[-1][1])
print(out)
打印:[1, 3, 5, 9, 11, 13, 18]
关于python - 在python中有条件的列表中删除数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67233974/