趣味のPython・深層学習

中級者のための実装集

Pythonのリスト・辞書における内包表記

内包表記の良い覚え方を教えてください!

この記事を読んで必ずマスターしよう

目次

はじめに

この記事では、内包表記の基本と応用に焦点を当てて学びます。

リスト内包表記の基本

#リスト内包表記における基本の型
my_list = [expression for item in iterable if condition]

例 : 1~10までの偶数のリストを作る場合

#内包表記
even_numbers = [x for x in range(1, 11) if x % 2 ==0]

#内包表記を使わない場合
even_numbers = []
for x in range(1, 11):
    if x % 2 == 0:
        even_numbers.append(x)

単純なリスト作成なら内包表記を用いたほうがスッキリするね

リスト内包表記の応用

リスト内包表記は、リストの要素を変換またはフィルタリングする際に非常に便利です

#リスト内の各要素を2倍にする
original_list = [1, 2, 3, 4, 5]
doubled_list = [x * 2 for x in original_list]

#内包表記を使わない例
doubled_list = []
for x in original_list:
    doubled_list.append(x*2)
# 条件に合致する要素だけを新しいリストに追加
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [x for x in numbers if x % 2 == 0]

#内包表記を使わない例
even_numbers = []
    for x in numbers:
        if x % 2 == 0:
            even_numbers.append(x)

基本は[expression for item in iterable if condition]

辞書内包表記の基本

#辞書内包表記における基本の型
my_dict = {key: value for key, value in iterable if condition}

例えば、2つのリストから辞書を生成する場合:

keys = ['a', 'b', 'c']
values = [1, 2, 3]
my_dict = {key: value for key, value in zip(keys, values)}

#内包表記を使用しない例
my_dict = {}
for key, value in zip(keys, values):
    my_dict[key] = value

辞書内包表記の応用

辞書内包表記は、他のデータから辞書を効率的に生成する場合に非常に役立ちます。

#辞書内の値を二倍にする
original_dict = {'a': 1, 'b': 2, 'c': 3}
doubled_dict = {key: value * 2 for key, value in original_dict.items()}

#内包表記を使用しない例
doubled_dict = {}
for key, value in original_dict.item():
    doubled_dict[key] = value * 2

特定の条件を満たす要素だけを含む辞書を生成

#20以上の値だけを抽出する
data = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
filterd_dict = {key: value for key , value in data.item() if value >20}
#内包表記を使用しない例
filterd_dict  = {}
for key, valuen in data.item():
    if value > 20:
        filterd_dict[key] = value

まとめ

内包表記は、Pythonの秘密兵器の一つ。この使いやすいテクニックを駆使して、コードの読みやすさを向上させ、効率的なプログラムを書く方法を楽しく学んでみましょう。これは、Pythonプログラマーにとって頼りになる味方です。