我正在寻找一种从2D列表中删除重复项的方法,但是基于第二列中的最高值。我知道如何在几个for循环中执行它,但我正在寻找O(N)解决方案。 样本输入:
inputLst = [[100,150]
,[150,140]
,[200,180]
,[300,150]
,[300,100]
,[320,180]]
输出应为:
OutputLst = [[100,150]
,[150,140]
,[200,180]
,[300,150]
,[320,180]]
这是我现在的代码:
SortLst = [[100,150],[150,140],[200,180],[300,150],[300,100],[320,180]]
lst = []
lastRow = SortLst[0]
for row in SortLst+[0,0]:
if row[0] != lastRow[0]:
lst.append(lastRow)
lastRow = row
elif row [1] > lastRow[1]:
lastRow = row
Sortlst按以下排序:
SortLst = sorted(zip(self.WavelengthPanel.GetValues(col=1),self.Shuttertime))
答案 0 :(得分:0)
你可以看看这个
{100: 150,
150: 140,
200: 180,
300: 150,
320: 180}
输出
target=sub1
while IFS=$' \t\n' read -r key values; do
if [[ $key = "$target" ]]; then
echo "Found values: $values"
fi
done <test1.txt
您可以轻松地将输出转换为列表。