如何解决list是另一个列表的子集
| 在Python中,给出了两个配对列表:listA = [ [1,20],[3,19],[37,11],[21,17] ]
listB = [ [1,17] ]
如果listB是listA的子集,如何有效地编写返回True的python函数?哦,[1,20]对等效于[20,1]
解决方法
使用
frozenset
。
>>> listA = [ [1,20],[3,19],[37,11],[21,17] ]
>>> listB = [ [1,17] ]
>>> setA = frozenset([frozenset(element) for element in listA])
>>> setB = frozenset([frozenset(element) for element in listB])
>>> setA
frozenset([frozenset([17,21]),frozenset([1,20]),frozenset([11,37]),frozens
et([19,3])])
>>> setB
frozenset([frozenset([17,20])])
>>> setB <= setA
True
, 只是为了提供替代方法,也许使用元组和集合更有效:
>>> set(map(tuple,listB)) <= set(map(tuple,listA))
True
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。