紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【Python】複数のインデックス番号を指定してリストから一括削除する方法

f:id:yokoyantech:20180717175613p:plain

やりたいこと

  • 複数のインデックス番号を指定して、リストから対象のデータを一度に削除したい

結論

  • 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))

参考

qiita.com