2次元リストのデータを小さい順に並び替える方法
Pythonの2次元リスト内の各リストデータを小さい順(昇順)に並び替える方法2つについて投稿します。
作成するプログラムは並び替え関数のsorted関数を使う場合と使わない場合の2つのプログラムを作成します。
sorted関数を使う場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
data=[[3,1,5,4,2], [7,9,10,8,6], [14,13,11,12,15], [17,19,20,18,16]] #表示 for i in data: print(i) print("\n")#改行 #並び替え for i in range(len(data)): data[i]=sorted(data[i]) #表示 for i in data: print(i) |
↓実行結果↓

プログラムを説明します。
1~4行目では中のデータをバラバラに並べた2次元リストを作成しています。
7,8行目で2次元リスト内の各リストをそのまま取り出して表示しています。
13,14行目ではsorted関数を使って各リストを昇順(小さい順)に並び替えています。そして、並び替えたリストをdata[i]に代入しています。
17、18行目で並び替えた2次元リスト内の各リストをそのまま取り出して表示しています。
※降順(大きい順)の場合はsorted(data[i],reverse=True)のような命令になります。
sorted関数を使わない場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
data=[[3,1,5,4,2], [7,9,10,8,6], [14,13,11,12,15], [17,19,20,18,16]] #表示 for i in data: print(i) print("\n")#改行 #並び替え for i in range(len(data)): for j in range(len(data[i])-1): for k in range(j+1,len(data[i])): if data[i][j] > data[i][k]: kae=data[i][j] data[i][j]=data[i][k] data[i][k]=kae #表示 for i in data: print(i) |
↓実行結果は上と同じです↓

1~4行目と表示は上のプログラムと同じなので、並び替えのプログラムを説明します。
まず、13行目のfor i in range(len(data)):でlen(data)が4個なので、4回繰り返しています。iの値は0~3になります。
続いて、14行目のfor j in range(len(data[i])-1):でdata[i]のリストの個数5に-1した、4回繰り返します。jの値は0~3になります。
15行目のfor k in range(j+1,len(data[i])):ではj+1した値からdata[i]のリストの個数繰り返します。kの値は1~4、2~4、3~4、4になります。
そして、16~19行目のif文で各リストの中身を比較していき昇順に並び替えます。