当前位置:  开发笔记 > 编程语言 > 正文

列表中的对元素计数

如何解决《列表中的对元素计数》经验,为你挑选了1个好方法。

创建a一个set并使用set.issuperset,检查是否asuperset每个子列表中的一个:

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和使用超集制作集合更有意义.



1> Padraic Cunn..:

创建a一个set并使用set.issuperset,检查是否asuperset每个子列表中的一个:

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和使用超集制作集合更有意义.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有