删除二维列表中的dominated元素
实现一个简单的二列表中的一维列表占优情况(即去掉superset)
下面是一个简单的例子:
import copy
c = [[1,2,3],
[1,2,3,4],
[3,5,6],
[1,2,3,4,8]]
c_new = copy.copy(c)
for i in range(len(c)-1):
for j in range(i,len(c)): # range(i,len(c))可以实现不重复循环比较,即i<j
if i != j:
print("i = %d, j = %d" % (i,j))
if set(c[i]) <= set(c[j]):
if c[j] in c_new:
c_new.remove(c[j])
print(c_new)
print(c_new)
输出结果:
i = 0, j = 1
[[1, 2, 3], [3, 5, 6], [1, 2, 3, 4, 8]]
i = 0, j = 2
i = 0, j = 3
[[1, 2, 3], [3, 5, 6]]
i = 1, j = 2
i = 1, j = 3
i = 2, j = 3
[[1, 2, 3], [3, 5, 6]]