前提
ただのpythonのコーディングの練習
JupyterLab(Python3)環境でlist化してあるファイル名から特定の拡張子のファイルだけのlistを作りたい
実現したいこと
list1 = [
'1.txt', '1.csv',
'2.txt', '2.csv',
'3.txt', '3.csv'
]
からcsvだけを選んで
csv_list = [
'1.csv', '2.csv', '3.csv'
]
を作る
質問
csv_list = [i for i in list1 if '.csv' in i]
で目的の結果は得られるが、このリスト内包表記で何が起こっているのか理解できないためどんな手順で何が行われているのかを教えてほしい
該当のソースコード
python3
1list1 = [ 2'1.txt', '1.csv', 3'2.txt', '2.csv', 4'3.txt', '3.csv' 5] 6#list1から「.csv」を含む要素だけを抽出してcsv_listに入れる 7csv_list = [i for i in list1 if '.csv' in i] 8print(csv_list) 9 10#>>['1.csv', '2.csv', '3.csv']
思考開示
[i for....]のiってなんで書かなきゃいけないんだろう
for i in list1....list1に含まれている文字列を順番にiに代入していく
if '.csv' in i...iに'.csv'が含まれているならば・・・という意味になるのであろう('*.csv'とせずになぜ部分一致になるのかは分からない)
是非ともよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/04 15:26