pythonのlist remove関数の注意事項

957 ワード

今日論文のアルゴリズムを実装するときpythonのlistのremove関数を使用すると,自分の予想通りに実行されていないことに気づき,コードを貼り付けた.
  • は、削除すべき複数の項目(a,a,b,c,d)
  • を含む.
    lista = [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]]
    for item in lista:
        if 2 in item:
            lista.remove(item)
    print(lista)
    

    期待入力[[3,4],[4,5],[5,6],[6,7]]実際出力[[2,3],[3,4],[4,5],[5,[5,6],[6,7]]
  • は、削除すべき複数の項目(a,b,c,d,e,a)
  • を含む.
    lista = [[1, 2], [3, 4], [2, 3], [4, 5], [5, 6], [6, 7]]
    for item in lista:
        if 2 in item:
            lista.remove(item)
    print(lista)
    

    #期待入力:[[3,4],[4,5],[5,6],[6,7]#実出力:[[3,4],[4,5],[5,6],[6,7]]
  • は、削除する複数のアイテムを連続して含む
  • である.
    lista = [[1, 2], [3, 4], [2, 3], [2, 5], [5, 6], [6, 7]]
    for item in lista:
        if 2 in item:
            lista.remove(item)
    print(lista)
    

    #期待入力:[[3,4],[5,6],[6,7]]#実出力:[[3,4],[2,5],[5,6],[6,7]]
    削除するリストに削除する連続アイテムが複数存在する場合、最後の理由は削除すると下付きの解決策が1つ後ろに移動します.新しいリストappendを使用して状況を満たす要素を使用します.