[python]リスト内包表記
リスト内包表記
あるリストがありそれを元に新しいリストを作成するにはfor文を使うと次のようになります。#初期化
list_1=[]
for i in range(5):
list_1.append(i**2)
print(list_1) #[0, 1, 4, 9, 16]
これをリスト内包記法を使うと次のように1行で表せます。[式 for 変数名 in イテラブルオブジェクト]
print([i**2 for i in range(5)]) #[0, 1, 4, 9, 16]
print([i+i for i in ['a','b','c']]) #['aa', 'bb', 'cc']
if文を使った内包表記
内包表記で3項演算子を使うと次のようになります。print(["even" if i%2==0 else "odd" for i in [0,1,2] ] #['even', 'odd', 'even'])
3項演算子なのでelseを省くことはできません。
またif文付き内包表記でリストの抽出ができます。
print([i**2 for i in [0,1,2,3,4,5] if i<4] #[0, 1, 4, 9])
map関数でリスト作成
あるリストから新しいリストの作成はmap関数を使ってもできます。print(list(map(lambda x: x * x,[0,1,2,3,4]))) #[0, 1, 4, 9, 16]
これは内包表記を使って
print([i**2 for i in [0,1,2,3,4]]) #[0, 1, 4, 9, 16]
filter関数でリスト抽出
あるリストから要素を抽出するにはfilter関数を使っても出来ます。print(list(filter(lambda x: x<4,[0,1,2,3,4]))) #[0, 2, 4]
これはif文付きの内包表記を使って
print([i for i in [0,1,2,3,4] if i%2==0]) #[0, 2, 4]
ページ情報
タイトル | [python]リスト内包表記 |
URL | https://www.nomuramath.com/tunko3we/ |
SNSボタン |
🔰[python3]スライスでシーケンスの一部を取り出す
"abcde"[1:3]
[python]集合同士の比較と部分集合・真部分集合と互いに素かを調べる
print({0,1,2}>={1,2}) #True
[python]if文の基本的な使い方
[python]集合型同士の和集合・積集合・差集合・対称差集合
print({'a','b'}|{'b','c'}) #{'c', 'a', 'b'}