我需要编写一个函数,给定一个整数L
和整数n
的列表,如果该列表包含长度为n
和False
的连续序列,则返回True
。你知道吗
假设我的列表是:L = [1,2,3,4,1,1,1,2,3,4]
和n
=3。
函数应该返回True
,因为第5个位置有3个。你知道吗
我试过:
def consecutive (L,n):
for i in range(len(L)):
if [1]*n in L:
return True
return False
L = [1,2,3,4,1,1,1,2,3,4]
n = 3
consecutive (L,n)
但这当然不起作用,因为[1]*3
生成[1,1,1]
,L
内没有子列表。你知道吗
有没有办法使用列表理解?比如:
L = [1,2,3,4,1,1,1,2,3,4]
result = all(x==(1,1,1) for x in range(0,len(L)+1,3))
result
同样,我知道是无效的,因为每个元素x
不能等于(1,1,1)
。我写下来只是想让你知道我在想什么。你知道吗
如果您想知道是否有任何列表元素重复,下面的操作将起作用。当且仅当存在任何元素的
n
副本序列时,以下返回True
:如果有一个特定的元素需要重复,请考虑以下事项:
一种方法是使用^{} ,它允许您对列表中的连续值进行分组。如果找到
1
的给定key
,并且其相应值的长度>=
大于n
,则下面的生成器理解返回True
。你知道吗我们可以使用
next
在返回第一个True
后立即停止迭代:不使用导入
例如:
相关问题 更多 >
编程相关推荐