Python代码阅读(第60篇):列表是否包括指定的元素
2021-10-20 本文已影响0人
FelixZzzz
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码分别实现了判断给出的元素是否都在指定的列表中出现过,以及判断任一给出的元素是否在指定的列表中出现过。
本篇阅读的代码片段来自于30-seconds-of-python。
includes_all
def includes_all(lst, values):
for v in values:
if v not in lst:
return False
return True
# EXAMPLES
print(includes_all([1, 2, 3, 4], [1, 4])) # True
print(includes_all([1, 2, 3, 4], [1, 5])) # False
includes_all函数接收两个列表lst和values,如果values中的所有元素都在lst中出现过,则返回True,否则返回False。并不对元素的出现次数做要求。
函数用for 循环遍历values中的元素,用not in关键词判断该元素是否在lst中存在。如果values中的任意一个元素在lst中不存在,就返回False,只有values中的所有元素在lst中存在,才返回True。
x not in s这种形式的写法中,如果列表s中的某项等于x则结果为False,否则为True。
includes_any
def includes_any(lst, values):
for v in values:
if v in lst:
return True
return False
# EXAMPLES
print(includes_any([1, 2, 3, 4], [2, 9])) # True
print(includes_any([1, 2, 3, 4], [8, 9])) # False
includes_any函数类似,也是接收两个列表lst和values,如果values中的任意元素在lst中出现过,返回True,否则返回False。并不对元素的出现次数做要求。
在该函数的for循环中,使用in关键词判断元素是在lst中存在。
x in s这种形式的写法中,如果列表s中的某项等于x则结果为True,否则为False。
虽然in和not in操作在通常情况下仅被用于简单的成员检测,某些专门化序列 (例如str,bytes和bytearray) 也使用它们进行子序列检测:
>>> "cd" in "abcdef"
True