如何检查元素是否在嵌套列表中?
我试图定义一个函数nested(x, ys)
,测试一个值是否x
出现在嵌套的整数列表中ys
.结果必须具有价值True
的False
.
循环遍历嵌套列表并测试它们; 该any()
功能使这个效率:
def nested(x, ys): return any(x in nested for nested in ys)
此假设ys
仅嵌套到一个级别.
如果需要递归,您可以使用:
def flatten(lst): for elem in lst: if isinstance(elem, (list, tuple)): for nested in flatten(elem): yield nested else: yield elem def nested(x, ys): return any(x == nested for nested in flatten(ys))
我使用了简化测试,list
并且tuple
只是为了避免"扁平化"字符串.