首页 > 解决方案 > 从 3 个深度嵌套列表中删除重复项 - python - sympy

问题描述

我正在使用 sympy 并且我有一个包含一些重复项的列表(顺序无关紧要,我仍然认为它们是重复的)并且我正在寻找一种删除它们的方法。

清单是休闲的,

A=[[[m, b], [f, g]],
   [[g, h], [f, b]],
   [[f, g], [m, b]]]

我会考虑[[m, b], [f, g]][[f, g], [m, b]]一样,并试图找出一种方法来列出删除它们的列表。它看起来像这样,

B=[[[m, b], [f, g]],
   [[g, h], [f, b]]]. 

它保留哪个副本并不重要,只要只剩下 1 个。

我试过使用 set 函数,但它给出了 TypeError: unhashable type: 'list' 错误,我不确定。任何意见或建议都会受到赞赏。

标签: pythonlistduplicates

解决方案


A = [[['m', 'b'], ['f', 'g']], [['g', 'h'], ['f', 'b']], [['f', 'g'], ['m', 'b']], [['l', 'k'], ['d', 'c']]]
B = []
C = []
for i in A:
    for j in i:
        if j not in B:
            B = B + [j]

c = 0
c1 = 1
counter = int(len(B) / 2)
for k in range(counter):
    C.append([B[k+c], B[k+c1]])
    c = c + 1
    c1 = c + 1
print(B)
print(C)

这是一个输出


推荐阅读