Pythonで変数やリストの値を入れ替え(交換・並べ替え)
Pythonでは値の入れ替え(交換、スワップ)が簡単にできる。変数の値を入れ替えたり、リストの要素の値を入れ替えて並べ替えたりすることが可能。
変数の値を入れ替え(交換)
2つの変数の値の入れ替えは以下のように書ける。確認のための出力にf文字列を使っている。
a = 1
b = 2
a, b = b, a
print(f'{a = }')
print(f'{b = }')
# a = 2
# b = 1
source: swap_values.py
temp
のような一時的な変数を用意する必要がなく、非常にスマート。
同様に複数の変数への値の代入を一行で書ける。
a, b = 100, 200
print(f'{a = }')
print(f'{b = }')
# a = 100
# b = 200
source: swap_values.py
3つ以上でも同様。
a, b, c, d = 0, 1, 2, 3
a, b, c, d = d, c, b, a
print(f'{a = }')
print(f'{b = }')
print(f'{c = }')
print(f'{d = }')
# a = 3
# b = 2
# c = 1
# d = 0
source: swap_values.py
リストの要素の値を入れ替え(並べ替え)
リストの要素の値も入れ替え可能。リストの要素の順番が並べ替えられる。
l = [0, 1, 2, 3, 4]
l[0], l[3] = l[3], l[0]
print(l)
# [3, 1, 2, 0, 4]
source: swap_values.py
すべての要素を昇順・降順に並べ替える(ソートする)には組み込み関数sorted()
かリストのメソッドsort()
を使う。
print(sorted(l))
# [0, 1, 2, 3, 4]
print(sorted(l, reverse=True))
# [4, 3, 2, 1, 0]
source: swap_values.py