簡體   English   中英

從元組列表中獲取唯一元素的問題

[英]Problem in getting unique elements from list of tuples

我得到的樣本輸入為a=[(1,2),(2,3),(1,1),(2,1)] ,並且預期的輸出為a=[(1,2),(2,3),(1,1)]

這里,(2,1)被刪除,因為相同的組合對(1,2)已經可用。 我嘗試下面的代碼刪除重復的對

map(tuple, set(frozenset(x) for x in a))

但是,輸出為[(1, 2), (2, 3), (1,)] 如何將(1,1)對作為(1,1)而不是(1,)。

您可以使用字典而不是集合來將凍結集映射到原始元組值。 以列表的相反順序構建dict,以便復制更靠近最前面的元組可以優先:

{frozenset(x): x for x in reversed(a)}.values()

返回:

[(1, 2), (2, 3), (1, 1)]

這是使用sorted一種方法

例如:

a=[(1,2),(2,3),(1,1),(2,1)]
print set([tuple(sorted(i)) for i in a])

輸出:

set([(1, 2), (2, 3), (1, 1)])

暫無
暫無

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

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