Python リスト内包表記

イテレーター(数え上げることができるオブジェクト)の各項目に何らかの処理を施し、新たなリストを作る。

イテレーター・・・リストやrangeオブジェクトなど

基本

(サンプルプログラム) pc.py

# 元のデータ
lang = ['python', 'ruby', 'perl', 'java', 'php', 'c++']

# リスト内包表記を用いて、各項目の先頭を大文字にしたデータを作る
cap_lang = [item.capitalize() for item in lang]

print(cap_lang)

(実行結果)

$ python3 pc.py
['Python', 'Ruby', 'Perl', 'Java', 'Php', 'C++']

if節で特定の要素のみを取り出す

(サンプルプログラム) pc.py

import re # 正規表現モジュール

# 元のデータ
lang = ['python', 'ruby', 'perl', 'java', 'php', 'c++']

# pで始まるデータのみを取り出す
cap_lang = [item.capitalize() for item in lang if re.match('p', item)]

print(cap_lang)

(実行結果)

$ python3 pc.py
['Python', 'Perl', 'Php']