最近Pythonについて勉強していて、リスト内容表記が便利だったので備忘としてまとめます。
基本形
リスト内包型表記の基本形は以下です。
new_list = [new_item for item in list]
一言で簡単に説明すると、
「list
の1つ1つの要素をitem
として取り出し、新要素new_item
としてnew_list
に追加する。」
という感じです。
例としては、リスト内包表記を使わず以下のように書いていたプログラムを
list = [1, 2, 3]
new_list = []
for item in list:
new_item *= 2
new_list.append(new_item)
# new_list = [2, 4, 6]
以下のように簡潔に書くことができます。
list = [1, 2, 3]
new_list = [item * 2 for item in list]
# new_list = [2, 4, 6]
ちなみにリストだけでなく文字列でも使うことができ、
文字列の場合は先頭から1文字1文字取り出して処理することができます。
ifとの組み合わせ
リスト内包表記はif
と組み合わせることができます。
if
と組み合わせることで、元となるリストから取得する要素をフィルタできます。
書き方は以下です。
new_list = [new_item for item in list if condition]
例として、リスト内包表記を使わず以下のように書いていたプログラムを
list = [1, 2, 3, 4]
new_list = []
for item in list:
if item % 2 == 0:
new_item *= 2
new_list.append(new_item)
# new_list = [4, 8]
以下のように書くことができます。
list = [1, 2, 3, 4]
new_list = [item * 2 for item in list if item % 2 == 0]
# new_list = [4, 8]
一旦以上ですが、
if else
のあわせ技や、タプルで使えたりもするようなので
それら今後追記したいと思ったことがあれば追記します。
【宣伝】
Next.jsを使って技術系ブロクを作りました。
めちゃくちゃのんびり投稿しているので記事は少ないですが、よかったら見てやってください。
こちら
↓
https://www.nattomatofu.com/