创建a
一个set并使用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
显然,由于列表中只有少数数字,因此从a和使用超集制作集合更有意义.
创建a
一个set并使用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
显然,由于列表中只有少数数字,因此从a和使用超集制作集合更有意义.