第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

從嵌套類中刪除反向重復(fù)項(xiàng) - python

從嵌套類中刪除反向重復(fù)項(xiàng) - python

呼如林 2022-12-27 15:49:37
我正在處理從列表中刪除重復(fù)元素的代碼。重復(fù)順序可能不同,但我仍然認(rèn)為兩者相同。例如,我會考慮[[m, b], [c, d]]并[[c, d], [m, b]]刪除重復(fù)項(xiàng)。我正在編寫一個(gè)代碼,將這些代碼識別為重復(fù)的,并從整個(gè)列表中刪除多余的。到目前為止,我在一個(gè)沒有任何重復(fù)項(xiàng)的列表上進(jìn)行了嘗試,因此結(jié)束列表應(yīng)該沒有變化。這是名單,A= [[[a1, b1], [a1, b1]], [[a2, b2], [a2, b2]], [[a3, b3], [a3, b3]], [[a4, b4], [a4, b4]]]我使用的代碼是,for i in A:    for j in A:        if j[1]== i[0]:            if j[0]==i[1]:                A.remove(j)我希望代碼將給定內(nèi)部列表 (j[1]) 中的第二個(gè)元素與另一個(gè)內(nèi)部列表 (i[0]) 中的第一個(gè)元素進(jìn)行比較,j[0] 和 i[1] 也類似,并且如果它們相等(即 i 和 j 彼此重復(fù)),則從列表中刪除其中一個(gè)元素。問題是,使用此代碼,輸出不應(yīng)該與起始列表 (A) 不同,但結(jié)果是這樣的,[[[a2, b2], [a2, b2]], [[a4, b4], [a4, b4]]]我只是在尋找為什么會發(fā)生這種情況以及如何更改我的代碼以避免該問題的輸入。
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

要比較兩個(gè)列表的交集,使用sets會很有幫助,尤其是當(dāng)您的列表有兩個(gè)以上的元素時(shí)。


a = ['m', 'n']

b = ['n', 'o']

print(set(a) & set(b)) # The & operator returns the intersecting elements


-> {'n'}

至于你的問題,這段代碼應(yīng)該有效:


for a in A:

  B = A.copy()

  B.remove(a) # so you don't compare a to a and mark it as a duplicate

  for b in B:

    if set(b[0]) & set(b[1]):

      A.remove(b)


查看完整回答
反對 回復(fù) 2022-12-27
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

要比較兩個(gè)列表的交集,使用sets會很有幫助,尤其是當(dāng)您的列表有兩個(gè)以上的元素時(shí)。


a = ['m', 'n']

b = ['n', 'o']

print(set(a) & set(b)) # The & operator returns the intersecting elements


-> {'n'}

至于你的問題,這段代碼應(yīng)該有效:


for a in A:

  B = A.copy()

  B.remove(a) # so you don't compare a to a and mark it as a duplicate

  for b in B:

    if set(b[0]) & set(b[1]):

      A.remove(b)


查看完整回答
反對 回復(fù) 2022-12-27
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

試試這個(gè):


>>> import numpy as np

>>> def remove_duplicates(A):

...     for sublist in A:

...             sublist.sort()

...     B = []

...     for sublist in A:

...             if sublist not in B:

...                     B.append(sublist)

...     return B

... 

>>> A = np.random.randint(low=0, high=3, size=(8, 2)).tolist()

>>> A

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

>>> remove_duplicates(A)

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

在 python 3.7.7 上測試。


查看完整回答
反對 回復(fù) 2022-12-27
  • 3 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號