Python sort - eiichiromomma/CVMLAB GitHub Wiki

(Python) sort

Listのsort()でソートの練習

※練習なので無駄な事をしている場合もある

やり方

単純に数の比較を行なうだけなら

myList.sort()

で良い。

Listの中にListを入れる場合や文字列の特殊な比較の場合は引数を2つ持つ比較関数の定義が必要。 第一引数が小さければ-1, 等しければ0, 第二引数が小さければ1を返すよう定義する。

def myCmp(data1, data2):
   要素を比較して値を返すmyList.sort(myCmp)

サンプル

import random
#比較関数 ここでは2つめの要素を比較して 大小の判別
#d1<d2 -> -1, d1==d2 -> 0, d1>d2 -> 1
def myCmp(d1,d2):
    if d1[1]<d2[1]:
        return -1
    else:
        return 0
myList = []
#2つめの要素をランダムで生成
for i in range(100):
    newData = [i,random.randint(0,5000)]
    myList.append(newData)
    myList.sort(myCmp)
print u"並び換えの結果"
for item in myList:
    print (item)

print ("最大は")
print (myList[99])
⚠️ **GitHub.com Fallback** ⚠️