2024-05-15 16:45:28 发布
网友
在Python中,给定两个对列表:
listA = [ [1,20], [3,19], [37,11], [21,17] ] listB = [ [1,20], [21,17] ]
如果listB是listA的子集,如何高效地编写返回True的python函数?oh和[1,20]对等于[20,1]
为了提供另一种选择,也许使用tuple和set更有效:
>>> set(map(tuple,listB)) <= set(map(tuple,listA)) True
使用frozenset。
frozenset
>>> listA = [ [1,20], [3,19], [37,11], [21,17] ] >>> listB = [ [1,20], [21,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, 21]), frozenset([1, 20])]) >>> setB <= setA True
为了提供另一种选择,也许使用tuple和set更有效:
使用
frozenset
。相关问题 更多 >
编程相关推荐