📌  相关文章
📜  Python|检查 k 是否在列表中至少出现 n 次

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

Python|检查 k 是否在列表中至少出现 n 次

开发人员或普通程序员在日常编码中会遇到许多常见问题。一个这样的问题是找出一个元素在列表中出现的次数是否超过一定次数。让我们讨论一些处理这个问题的方法。

方法 #1:使用sum() + 列表推导
列表推导可以与 sum函数结合以实现此特定任务。 sum函数执行求和部分,返回 true 的逻辑情况在列表理解部分处理。

# Python3 code to demonstrate 
# check for minimum N occureneces of K 
# using sum() + list comprehension
  
# initializing list
test_list = [1, 3, 5, 5, 4, 5]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# initializing k 
k = 5
  
# initializing N
N = 3
  
# using sum() + list comprehension
# checking occurrences of K atleast N times 
res = 0
res = sum([1 for i in test_list if i == k]) >= N
if res == 1 :
    res = True
else : 
    res = False
      
# printing result 
print ("Does %d occur atleast %d times ? :" %(k, N) + str(res))
输出:
The original list is : [1, 3, 5, 5, 4, 5]
Does 5 occur atleast 3 times ? : True


方法 #2:使用next() + islice()
这两个功能可以一起使用,以比上述更有效的方式执行此特定任务。 islice函数将处理求和部分,next函数有助于迭代逻辑。

# Python3 code to demonstrate 
# check for minimum N occureneces of K 
# using next() + islice()
from itertools import islice
  
# initializing list
test_list = [1, 3, 5, 5, 4, 5]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# initializing k 
k = 5
  
# initializing N
N = 3
  
# using next() + islice()
# checking occurrences of K atleast N times 
func = (True for i in test_list if i == k)
res = next(islice(func, N-1, None), False)
      
# printing result 
print ("Does %d occur atleast %d times ? :" %(k, N) + str(res))
输出:
The original list is : [1, 3, 5, 5, 4, 5]
Does 5 occur atleast 3 times ? : True