我有一个数字列表,我想检查列表中是否存在一个确定的序列。例如,对于[1,1,2,2,3,3,3,4,5,5,6]
如何确定序列3-4-5是否存在
我尝试使用嵌套循环,但遇到了中断/继续问题。我现在将列表缩减为其唯一的元素,并查看我的序列是否存在:
ls = [1,1,2,2,3,3,3,4,5,5,6]
uniq_ls = []
for item in ls:
if item not in uniql:
uniq_ls.append(item)
for ii, item in enumerate(uniq_ls):
if item == 3:
if uniq_ls[ii+1] == 4:
if uniq_ls[ii+2] == 5:
print('yes, sequence exists')
上面的方法是有效的,但我希望在不将原始列表缩减为其唯一元素的情况下执行此操作。 我该怎么做? 正如一些人所指出的,这种方法只有在对原始列表进行排序时才有效。 它不适用于[1,1,1,3,2,2,4,3,3,4,4,4,4,4,5,3,2,1]这样的列表 我需要它为这样一个未排序的列表工作
当列表未排序时,我想出了一个解决方案。我不确定这是否是最优雅、最有魅力的方式-
列表L1为[1,1,1,3,2,4,3,3,4,4,4,5,3,2,1]
我将有一个空列表L2=[],并将列表的第一项添加到其中
然后,如果前一项与当前项不同,我将使用L1中的项附加L2
因此L2最终应该看起来像[1,3,2,4,3,4,5,3,2,1] 从这个列表中很容易找到序列3-4-5
新代码:
您可以使用此功能:
输出:
您还可以将其转换为一行:
相关问题 更多 >
编程相关推荐