📜  Python – 测试 K 是否连续出现 N 次

📅  最后修改于: 2022-05-13 01:54:29.263000             🧑  作者: Mango

Python – 测试 K 是否连续出现 N 次

有时,在使用Python列表时,我们可能会遇到需要检查特定数字是否连续出现 N 次的问题。这可以在包括日间编程在内的许多领域中得到应用。让我们讨论可以执行此任务的某些方式。

方法#1:使用列表推导
这是可以执行此任务的一种方式。在此,我们迭代列表并在单行中使用乘法运算符检查列表中的出现。

# Python3 code to demonstrate 
# Test if K occurs N consecutive times
# using list comprehension
  
# Initializing list
test_list = [1, 3, 4, 4, 4, 3, 3, 2, 2, 1]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing K 
K = 4
  
# Initializing N 
N = 3
  
# Test if K occurs N consecutive times
# using list comprehension
res = [K] * N in (test_list[i : i + N] for i in range(len(test_list) - N))
  
# printing result 
print ("Does K occur N consecutive times ? : " + str(res))
输出 :
The original list is : [1, 3, 4, 4, 4, 3, 3, 2, 2, 1]
Does K occur N consecutive times ? : True

方法 #2:使用lambda + join()
这是执行此任务的另一种方式。在此,我们使用 lambda 执行检查连续性的任务,并使用 join() 来获取连续的元素组。

# Python3 code to demonstrate 
# Test if K occurs N consecutive times
# using lambda + join()
  
# Initializing list
test_list = [1, 3, 4, 4, 4, 3, 3, 2, 2, 1]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing K 
K = 4
  
# Initializing N 
N = 3
  
# Test if K occurs N consecutive times
# using lambda + join()
res = bool(lambda ele: str(K) * N in ''.join(str(num) for num in test_list))
  
# printing result 
print ("Does K occur N consecutive times ? : " + str(res))
输出 :
The original list is : [1, 3, 4, 4, 4, 3, 3, 2, 2, 1]
Does K occur N consecutive times ? : True