Pythonのリスト内包表記入門

Pythonのリスト内包表記は、コンパクトな形式でリストを生成するための構文です。リスト内包表記を使用すると、ループを使用してリストを生成する一般的な処理を簡潔に記述できます。

リスト内包表記の構文

new_list = [expression for item in iterable if condition]
  • expression - 各要素に適用される式。新しいリストの要素がこの式に基づいて生成される
  • item - イテラブル(リスト、タプル、範囲など)から取得される要素
  • iterable - 要素を取得するためのイテラブルオブジェクト
  • condition - 要素をフィルタリングする条件(省略可)。条件を満たす要素のみが新しいリストに含まれる

「フィルタリング条件」を省略した場合は、すべてのデータが選択されます。

リスト内包表記の使用例

単純なリストのコピー

my_list = [1, 2, 3, 4, 5]
new_list = [val for val in my_list]
print(new_list) # [1, 2, 3, 4, 5]

タプル内の値がNoneのものを除いたリストを生成する

tuple_with_none = (1, None, "Hello", None, 5.0)
array_without_none = [str(item) for item in tuple_with_none if item is not None]
print(array_without_none) # ['1', 'Hello', '5.0']

タプル内の値がNoneの時に空文字に変換したリストを生成する

フィルタリング条件ではないので、if~elseの記述場所がexpressionの位置になります。itemNone以外なら、str(item)とし、itemNoneなら空文字にするという式を適用しています。

tuple_with_none = (1, None, "Hello", None, 5.0)
array_without_none2 = [str(item) if item is not None else "" for item in tuple_with_none]
print(array_without_none2) # ['1', '', 'Hello', '', '5.0']
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です