20

私はこのリストを持っています

[1,-5,10,6,3,-4,-9]

しかし今、私はリストを次のようにソートしたいと思っています:

[10,-9,6,-5,-4,3,1]

ご覧のとおり、各数字がどんな符号を持っていても高いから低い順に並べたいのですが、符号を維持することは明確ですか?

4

3 に答える 3

13

使用する:

    l.sort(key= abs, reverse = True)

リストは、sort() メソッドを使用してソートできます。また、sort メソッドには key と呼ばれるパラメーターがあり、関数を渡すことができます。このパラメーターを使用すると、リストはリストの値ではなく、リスト上の関数の値によって並べ替えられます。

あなたの場合、リスト要素の絶対値を返す abs() 関数を使用する必要があります。だから、あなたのリスト

>>> l = [1,-5,10,6,3,-4,-9]

元のようにソートされます

>>>  [abs(1),abs(-5),abs(10),abs(6),abs(3),abs(-4),abs(-9)]

次のようになります。

>>> [1 ,-4 ,-5 ,6 ,-9 ,10]

大きいものから小さいものへと並べ替えるには、reverse=True パラメーターも使用します。

于 2013-10-05T16:29:01.193 に答える