🦁
【Python】リスト内の数字を偶数、奇数の順に並べ替えるアルゴリズム
はじめに
リストの数字を偶数、奇数の順に並べ替えるアルゴリズムを実装しました。
方針
1. 偶数と奇数用の殻のリストを用意する。
2. リストを始めから順に見ていき、2で割り切れるものは偶数のリストに追加する。それ以外は奇数のリストに追加する。
3. 偶数、奇数のリストを結合する。
実装
even_first_odd_end.py
# 関数の引数に型を明示できるようにする。
from typing import List
# Noneを指定することで、対象のリストを上書きできるようにする。
def even_first_odd_end(numbers: List[int]) -> None:
# 空のリストを作成する
even_list, odd_list = [], []
# リストの始めから見ていき、
for num in numbers:
# もし2で割った余りが0ならば、
if num % 2 == 0:
# 偶数用のリストに追加する。
even_list.append(num)
# それ以外の場合は、
else:
# 奇数用のリストに追加する。
odd_list.append(num)
# リスト内のすべての要素を、偶数用のリストと奇数用のリストを結合したものに置き換える。
numbers[:] = even_list + odd_list
# テスト
if __name__ == "__main__":
list1 = [1,2,3,4,5,6,7,8,9,10]
even_first_odd_end(list1)
print(list1)
参考
Discussion