Python在2D列表的第一个col中找到重复项,并根据第二个col删除其中一个

时间:2017-03-13 13:01:20

标签: python list

我正在寻找一种从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))

1 个答案:

答案 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

您可以轻松地将输出转换为列表。