列表 L 中的每个元素都是一个形式为 (fields, size) 的元组。例如
L = [ (['A','B'], 5), (['A'], 6), ('C', 1)]
我想剔除该列表,使其仅包含不相交的成员,并且剩余的每个成员都大于它可能相交的任何其他成员。所以示例列表 L 将简化为
L = [ (['A'], 6), ('C', 1)]
目前我已经这样实现了:
def betterItem(x, y):
return (x != y and
set(x[0]) & set(y[0]) and
x[1] > y[1])
for i in range(len(L)-1):
L[:] = [x for x in L for y in L if betterItem(x, y)]
有没有更好/更快/更 Pythonic 的方式来做到这一点?
谢谢您的帮助!