前提
はじめて質問させていただきます.
与えられたリストに対し,for文を用いてある条件を満たす要素のみからなる部分集合のリストを作成したいのですが,最初に試した方法がうまくいかず,その理由が分かりません(下記の方法1).
別の方法で試してうまくいったのですが(下記の方法2),最初の方法の問題点を理解しておきたいと考えております.
基本的な内容ですみませんが,ご教示いただければ幸いです.よろしくお願いします.
実現したいこと
lis = [("f001", 101), ("f002", 97), ("f003", 87), ("f004", 102)]
の要素でタプルの2番目の要素が100以上からなるもののみからなるリストを作成したい.
該当のソースコード
Python
1# 方法1:最初に試して意図通りに動かなかった方法 2lis = [("f001", 101), ("f002", 97), ("f003", 87), ("f004", 102)] 3for ele in lis: 4 if ele[1] <= 100: 5 lis.remove(ele) 6print(lis) 7 8# 方法2:うまくいった方法 9lis2 = [("f001", 101), ("f002", 97), ("f003", 87), ("f004", 102)] 10print([ele for ele in lis2 if not ele[1] <= 100])
回答1件
あなたの回答
tips
プレビュー