やりたいこと
- 複数のインデックス番号を指定して、リストから対象のデータを一度に削除したい
結論
- lambda式を使う
困った例
以下だと、削除したいインデックスがずれてしまう。
list = ["りんご","みかん","バナナ","メロン","スイカ"] # りんごとメロンを消したい del_index = [0,3] for x in del_index: del list[x] # ['みかん', 'バナナ', 'メロン'] print(list)
実現方法
lambda式で実施すればOK
list = ["りんご","みかん","バナナ","メロン","スイカ"] # りんごとメロンを消したい del_index = [0,3] del_list = lambda items, del_indexes: [item for index, item in enumerate(items) if index not in del_indexes] # ['みかん', 'バナナ', 'スイカ'] print(del_list(list, del_index))