Python| K出现元素测试
开发人员或普通程序员在日常编码中会遇到许多常见问题。一个这样的问题是找出一个元素是否在列表中出现了一定次数。让我们讨论一些处理这个问题的方法。
方法 #1:使用sum()
+ 列表推导
列表推导可以与 sum函数结合以实现此特定任务。 sum函数执行求和部分,返回 true 的逻辑情况在列表理解部分处理。
# Python3 code to demonstrate
# K occurrence element Test
# 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 = 3
# initializing N
N = 5
# using sum() + list comprehension
# K occurrence element Test
res = 0
res = sum([1 for i in test_list if i == N]) == k
if res == 1 :
res = True
else :
res = False
# printing result
print ("Does N occur K times ? : " + str(res))
输出 :
The original list is : [1, 3, 5, 5, 4, 5]
Does N occur K times ? : True
方法 #2:使用next() + islice()
这两个功能可以一起使用,以比上述更有效的方式执行此特定任务。 islice函数将处理求和部分,next函数有助于迭代逻辑。
# Python3 code to demonstrate
# K occurrence element Test
# 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 = 3
# initializing N
N = 5
# using next() + islice()
# K occurrence element Test
func = (True for i in test_list if i == N)
res = next(islice(func, k - 1, None), False)
# printing result
print ("Does N occur K times ? : " + str(res))
输出 :
The original list is : [1, 3, 5, 5, 4, 5]
Does N occur K times ? : True