a = [2,7,9]
b = [[7,9],[1,2],[2,9]]
列表[a]
中有多少对匹配对元组?[b]
请注意对[7,9]
和[2,9]
列表中[a]
。即使对[1,2]
包含位数2
,也不会计算在内,因为两位数都不在列表中[a]
。返回值应为2,即匹配对的len。
len(filter(lambda l:if_in(b,l),a))
需要帮助来创建if_in函数,或者需要一种更简单的方法将此函数全部编写在一起。无论a
或的大小,如何使此功能起作用b
。
做a
一组和使用set.issuperset,检查是否a
是superset
每个子列表:
a = [2,7,9]
b = [[7,9],[1,2],[2,9]]
st = set(a)
print(sum(st.issuperset(sub) for sub in b))
2
您可以采用两种方式,要么制作所有子列表集,要么如上所述制作一个集,当a是子列表的超集时,则子列表是a的子集:
In [6]: a = [2,7,9]
In [7]: b = [[7,9],[1,2],[2,9]]
In [8]: st = set(b[0])
In [9]: st.issubset(a)
Out[9]: True
In [10]: st = set(b[1])
In [11]: st.issubset(a)
Out[11]: False
In [13]: st = set(a)
In [13]: st.issuperset(b[0])
Out[13]: True
In [14]: st.issuperset(b[1])
Out[14]: False
显然,由于列表中只有几个数字,因此从中进行设置并使用超集更有意义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句