引き続き、『入門 Python 3』を読んでいて印象に残った箇所をメモに残していく
前回の記事
【Python3】特徴的だと思った機能まとめ その3 - 中安拓也のブログ
バージョン情報
- Python 3.7.2
出典元
https://www.oreilly.co.jp/books/9784873117386/
オライリーの『入門 Python 3』
学習メモ
\
による長い行の分割
バックスラッシュ(\
)で行を分割することができる。
>>> age = 15 # 三項演算子の行を分割して読みやすくしている >>> name = 'みゃー姉' \ ... if age >= 18 \ ... else 'アカネ' >>> name 'アカネ'
内包表記
内包表記とは、イテレータ*1からPythonのデータ構造をコンパクトな構文で作成できる機能を指す。
内包表記で作成できるデータ構造として、リスト、辞書、集合などがあり、それぞれリスト内包表記、辞書内包表記、集合内包表記といった感じに命名されている。
リスト内包表記
リストをシンプルな構文で作成できる。リスト内包表記の文法は下記の通りとなる。
[expression for item in iterable]
- リスト内包表記の最も単純な形式
[expression for item in iterable if condition]
- 条件を追加した形式
# 単純な形式のリスト内包表記 >>> numList = [num for num in range(1, 7)] >>> numList [1, 2, 3, 4, 5, 6] # 0 ~ 7の値を取り出して二乗した後、リスト化している >>> squaringList = [i * i for i in range(0, 8)] >>> squaringList [0, 1, 4, 9, 16, 25, 36, 49] # 条件を追加したリスト内包表記 >>> evenList = [j for j in range(0, 8) if j % 2 == 0] >>> evenList [0, 2, 4, 6]
辞書内包表記
ディクショナリも内包表記を使用してワンライナーで作成することができる。{key_item : value_item for item in iterable}
# リストを定義 >>> marshalList = ['ランヌ', 'ミュラ', 'ダヴー', 'ベルティエ', 'ネイ'] # 内包表記でdictを作成 >>> marshal_dict = {i : marshalList[i] for i in range(0, 5)} >>> marshal_dict {0: 'ランヌ', 1: 'ミュラ', 2: 'ダヴー', 3: 'ベルティエ', 4: 'ネイ'}
*1:要素を順番に取り出すことのできるオブジェクトのこと。リスト(配列)、辞書、集合、タプルなど