リストからすべての3番目のアイテムを削除します。例については :リストから3番目のアイテムをすべて削除する(リスト内の一定間隔でエントリを削除する)
list1 = list(['a','b','c','d','e','f','g','h','i','j'])
3の倍数であるインデックスを除去した後、リストは次のようになります。
['a','b','d','e','g','h','j']
私はこれをどのように達成することができますか?
リストからすべての3番目のアイテムを削除します。例については :リストから3番目のアイテムをすべて削除する(リスト内の一定間隔でエントリを削除する)
list1 = list(['a','b','c','d','e','f','g','h','i','j'])
3の倍数であるインデックスを除去した後、リストは次のようになります。
['a','b','d','e','g','h','j']
私はこれをどのように達成することができますか?
:
>>> x = ['a','b','c','d','e','f','g','h','i','j']
>>> [i for j, i in enumerate(x) if (j+1)%3]
['a', 'b', 'd', 'e', 'g', 'h', 'j']
またを、あなたはリストのコピーを作成し、間隔で値を削除することができます。例:
>>> y = list(x) # where x is the list mentioned in above example
>>> del y[2::3] # y[2::3] = ['c', 'f', 'i']
>>> y
['a', 'b', 'd', 'e', 'g', 'h', 'j']
[v for i, v in enumerate(list1) if (i + 1) % 3 != 0]
実際にインデックス2にあるリストの3番目のアイテムが消えたように思えます。これは、+1
が対象です。あなたはenumerate()
使用すること
ありがとうございます。私はこれらのことがかなりシンプルであることを知っていますが、私は2年後にもう一度Pythonを試しています。その基本的なリストの理解と索引付け、私はあまりにも錆びていると言わなければならない。 – EL323
これは、 'StackOverflow'コミュニティが人々にサービスを提供している理由です。私はあなたを助けることができてうれしいです。 :) –
@MoinuddinQuadri等間隔でアイテムを削除するための優れたテクニック。それを感謝する –