🦁

【Python】リスト内の数字を偶数、奇数の順に並べ替えるアルゴリズム

2023/05/14に公開

はじめに

リストの数字を偶数、奇数の順に並べ替えるアルゴリズムを実装しました。

方針

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)

参考

https://www.udemy.com/course/python-algo/

Discussion