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