-4

次のリストのリストがあります(リスト):

[[abc-kr, 0, 4, -0.031]
[kkg-kg, 0, 6, -0.03]
[art-m, 1, 20, 0.036]
[abc-kg, 0, 4, -0.023]]

別のリストを作成し、最初のアイテムの最初の部分が同じ場合はリストを削除したいので、リストの最初または最後のリストのみを新しいリストの一部にする必要があります。より低い値を含む項目がリスト 2 に残っているとよいでしょう。

出発点として、私はこのようにしようとしています:

finalList = []
for line in List:
item = line.split("-")
if item[0] not in finalList:
    finalList.append(line)

これはうまくいくはずだと思ったのですが、うまくいかないので、誰かが私を正しい方向に向けることができるかどうか考えていましたか?

4

2 に答える 2

3

何かのようなもの:

data = [['abc-kr', 0, 4, -0.031],
['kkg-kg', 0, 6, -0.03],
['art-m', 1, 20, 0.036],
['abc-kg', 0, 4, -0.023]]

new_data = {el[0].partition('-')[0]:el for el in data}.values()
于 2013-08-25T13:03:21.603 に答える
1

各アイテムの「最初の部分」を含む個別の配列を維持する必要があります。これには、アイテムがまだその配列に属していない場合にのみ、アイテムの最初の部分が追加され、この配列に対してチェックが行われますfinalListに対してではなく、最初の部分の。言い換えると、

finalList = []
firstParts = []
for line in List:
    item = line[0].split("-")
    print item[0]
    if item[0] not in firstParts:
            firstParts.append(item[0])
            finalList.append(line)
于 2013-08-25T13:10:15.003 に答える