亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

嵌套列表重復排名

嵌套列表重復排名

呼如林 2023-07-27 16:07:31
考慮 Python 中的以下嵌套列表:[    ['Val1', 1, 'X'],    ['Val2', 1, 'X'],    ['Val2', 2, 'Y'],    ['Val3', 2, 'Y'],    ['Val4', 2, 'Y'],    ['Val4', 3, 'Z'],    ['Val5', 3, 'Z'],    ['Val6', 3, 'Z'],]索引 0 處有重復項。我想從中獲取一個新列表,刪除重復項,保留索引 1 處具有最高值的列表。在上面的示例中,結果列表應如下所示:[    ['Val1', 1, 'X'],    ['Val2', 2, 'Y'],    ['Val3', 2, 'Y'],    ['Val4', 3, 'Z'],    ['Val5', 3, 'Z'],    ['Val6', 3, 'Z'],]
查看完整描述

3 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

>>> from itertools import groupby
>>> [max(g, key=lambda i: i[1]) for k, g in groupby(data, lambda i: i[0])]
[['Val1', 1, 'X'],
 ['Val2', 2, 'Y'],
 ['Val3', 2, 'Y'],
 ['Val4', 3, 'Z'],
 ['Val5', 3, 'Z'],
 ['Val6', 3, 'Z']]


查看完整回答
反對 回復 2023-07-27
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

使用熊貓


x = [['Val1', 1, 'X'],

    ['Val2', 1, 'X'],

    ['Val2', 2, 'Y'],

    ['Val3', 2, 'Y'],

    ['Val4', 2, 'Y'],

    ['Val4', 3, 'Z'],

    ['Val5', 3, 'Z'],

    ['Val6', 3, 'Z']]


import pandas as pd

pd.DataFrame(x).sort_values([0, 1]).drop_duplicates(subset=[0], keep='last').values.tolist()



查看完整回答
反對 回復 2023-07-27
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

步驟1:根據第二個屬性排序。步驟2:根據第一個屬性進行排序。由于排序在 python 中是“穩定的”,因此步驟 1 中的排序順序將在步驟 2 之后保留。

l?=?#?list?of?similarly?formatted?lists
l?=?sorted(l,?key=itemgetter(1))
l?=?sorted(l,?key=itemgetter(0))

或者,編寫您自己的比較鍵函數。我認為這實際上應該有效,因為元組是按從左到右的順序進行比較的:

l?=?sorted(l,?key=tuple)


查看完整回答
反對 回復 2023-07-27
  • 3 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號