2012-03-22 16 views

答えて

3

これまでに見た最初の値のsetを維持し、最初の値がセ​​ットにない場合はサブリストのみを保持します。

set.addは常にNoneを返すので、keys.add(sublist[0]) or sublistsublistと同じであるNone or sublistと同じであるので、それはあなたがリストの内包内のセットに値を追加できるようにしながら、リストに保存されますどのような影響を与えません。リストの順序は重要ではありません場合は

keys = set() 
biglist = [keys.add(sublist[0]) or sublist 
       for sublist in biglist 
        if sublist[0] not in keys] 
del keys # if you don't need it any more 
+0

うわー、それはかなり良い答えです、それは動作します。私はそれを理解するのに数分を要した。説明ありがとう – siamii

1

、あなたはこれを試すことができます。

dict([(sublist[0], sublist) for sublist in biglist]).values() 

または

dict([(sublist[0], sublist) for sublist in reversed(biglist)]).values() 

違いは、第1のための最初のリストを返すということです同じ最初の値、もう一方の値は反対です。

関連する問題