簡體   English   中英

如何刪除嵌套列表中的重復項?

[英]How to remove duplicates in nested lists?

我想從嵌套列表中刪除重復項和置換項。

輸入:

[[-1, 0, 1], [-1, 1, 0], [-1, 2, -1], [-1, 2, -1], [-1, -1, 2]]

預期產量:

[[-1, 0, 1], [-1, 2, -1]]

我嘗試使用列表推導,但最終輸出為

[[-1, 1, 0], [-1, 2, -1], [-1, 0, 1], [-1, -1, 2]]

這是我嘗試過的。

a = [[-1, 0, 1], [-1, 1, 0], [-1, 2, -1], [-1, 2, -1], [-1, -1, 2]]
b_set = set(tuple(x) for x in a)
b = [ list(x) for x in b_set ]
print(b)

由於[-1, 0, 1] != [-1, 1, 0]是預期的結果。 如果要確保內部元組相等,可以對它們進行排序:

b_set = set(tuple(sorted(x)) for x in a)

或與map

b_set = set(map(lambda x: tuple(sorted(x)),a))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM