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

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

子列表的唯一元素取決于子列表中的特定值

子列表的唯一元素取決于子列表中的特定值

哈士奇WWW 2022-07-26 16:34:32
我試圖從一個非常不一致的列表中選擇唯一的數(shù)據(jù)集。我的數(shù)據(jù)集 RawData 由不同長度的字符串項組成。有些項目出現(xiàn)多次,例如:比較['a','b','x','15/30']項目 的關(guān)鍵始終是最后一個字符串:例如'15/30'目標是:獲取一個列表:UniqueData,其中包含僅出現(xiàn)一次的項目。(我想保持訂單)數(shù)據(jù)集:RawData = [['a','b','x','15/30'],['d','e','f','g','h','20/30'],['w','x','y','z','10/10'],['a','x','c','15/30'],['i','j','k','l','m','n','o','p','20/60'],['x','b','c','15/30']]我想要的解決方案數(shù)據(jù)集:UniqueData = [['a','b','x','15/30'],['d','e','f','g','h','20/30'],['w','x','y','z','10/10'],['i','j','k','l','m','n','o','p','20/60']]我嘗試了許多可能的解決方案,例如:for index, elem in enumerate(RawData):并附加到一個新列表,如果......for element in list不起作用,因為項目不完全相同。你能幫我找到解決問題的方法嗎?
查看完整描述

4 回答

?
開滿天機

TA貢獻1786條經(jīng)驗 獲得超13個贊

刪除重復(fù)項的最佳方法是將它們添加到集合中。將最后一個元素添加到setas 以跟蹤所有唯一值。當您要添加的值已經(jīng)存在于集合中unique時,如果不存在則不執(zhí)行任何操作,添加要設(shè)置的值unique并將 lst 附加到結(jié)果列表中new。


嘗試這個。


new=[]

unique=set()

for lst in RawData:

     if lst[-1] not in unique:

         unique.add(lst[-1])

         new.append(lst)


print(new)

#[['a', 'b', 'x', '15/30'],

 ['d', 'e', 'f', 'g', 'h', '20/30'],

 ['w', 'x', 'y', 'z', '10/10'],

 ['i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', '20/60']]


查看完整回答
反對 回復(fù) 2022-07-26
?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

您可以為唯一數(shù)據(jù)設(shè)置一個新數(shù)組并跟蹤您迄今為止看到的項目。然后,當您遍歷數(shù)據(jù)時,如果您之前沒有看到該列表中的最后一個元素,則將其附加到唯一數(shù)據(jù)并將其添加到已看到的列表中。


RawData = [['a', 'b', 'x', '15/30'], ['d', 'e', 'f', 'g', 'h', '20/30'], ['w', 'x', 'y', 'z', '10/10'],

           ['a', 'x', 'c', '15/30'], ['i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', '20/60'], ['x', 'b', 'c', '15/30']]

seen = []

UniqueData = []

for data in RawData:

    if data[-1] not in seen:

        UniqueData.append(data)

        seen.append(data[-1])


print(UniqueData)

輸出


[['a', 'b', 'x', '15/30'], ['d', 'e', 'f', 'g', 'h', '20/30'], ['w', 'x', 'y', 'z', '10/10'], ['i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', '20/60']]


查看完整回答
反對 回復(fù) 2022-07-26
?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

使用集合過濾掉已經(jīng)看到密鑰的條目是最有效的方法。

這是一個使用具有內(nèi)部副作用的列表理解的單行示例:

UniqueData = [rd for seen in [set()] for rd in RawData if not(rd[-1] in seen or seen.add(rd[-1])) ]



查看完整回答
反對 回復(fù) 2022-07-26
?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

    RawData = [['a','b','x','15/30'],['d','e','f','g','h','20/30'],['w','x','y','z','10/10'],['a','x','c','15/30'],['i','j','k','l','m','n','o','p','20/60'],['x','b','c','15/30']]


seen = []

seen_indices = []


for _,i in enumerate(RawData):

  # _ -> index

  # i -> individual lists

  if i[-1] not in seen:

   seen.append(i[-1])

  else:

   seen_indices.append(_)


for index in sorted(seen_indices, reverse=True):

    del RawData[index]


print (RawData)


查看完整回答
反對 回復(fù) 2022-07-26
  • 4 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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