[英]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.