要素が変更された後もリストは変更されません

バブラー

アルゴリズムを実装しようとしているときに、関数を介してPythonリストを変更することができませんでした。この問題を読んだ後、このStackOverflowの回答から[:]、関数argumemtで渡された配列を変更するために使用することが提案されました。

ただし、次のコードスニペットに示されているように、リストを変更しようとしても問題は解決しませんl出力がになることを期待していますがBefore: [1,2,3,4] After: [69, 69, 69, 69]、代わりにl以下に示すように元の値に戻ります。

def mutate_list(a, b):
    c = [69] * 4
    a[:] = c[:2]  # changed the elements, but array's still unchanged outside function
    b[:] = c[2:]

if __name__ == '__main__':
    l = [1, 2, 3, 4]
    print("Before: {}" .format(l))
    mutate_list(l[:2], l[2:])
    print("After: {}" .format(l))

出力:

Before: [1, 2, 3, 4]
After : [1, 2, 3, 4]

なぜこれが起こっているのかについての洞察はありますか?

バブラー

他の人が指摘しているように、この問題は、関数パラメーターが元の配列のスライスであり、パラメーターが(参照ではなく)値で渡されていたという事実から発生しました。

@Selcukの提案によると、このような操作を行う正しい方法は、元の配列とそのインデックスを関数に渡してから、関数内でスライスを実行することです。

注:この概念は、サブアレイを変更して組み合わせてソリューションを形成する必要がある(再帰的な)分割統治アルゴリズムに役立ちます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Vue v-forリストは、データが変更された後も更新されません

分類Dev

@Stateが変更された後、SwfitUI要素は変更されません

分類Dev

リストの最後の項目は追加後も変更されません

分類Dev

RecyclerViewは変更後も変更されたままになりません

分類Dev

<select>が変更されても.change()はトリガーされません

分類Dev

Vue v-forオブジェクトは、データが変更された後も更新されません

分類Dev

変更後もカウントは更新されません

分類Dev

フックされた要素が変更されてもコンポーネントは変更されません

分類Dev

Java変数は変更されていません、参照した後でも変更されました

分類Dev

データが変更されても要素は更新されません

分類Dev

Matplotlibで変更されたヒストグラムは、変更後に表示されません

分類Dev

Dockerボリュームは変更後にコンテナーで更新されましたが、ホストでは何も起こりません

分類Dev

TextContentの長さはDOM操作後も変更されません

分類Dev

FlatListのReactNative ios Switchは、値が変更された後もトグルしません

分類Dev

ngOptionsが変更されてもngModelは更新されません

分類Dev

DBが変更されてもUIは更新されません

分類Dev

Xamarin.FormsでPropertyChangedが呼び出されても、更新されたリストはUIで変更されません

分類Dev

値が変更されても、CachedNetworkImageは変更されません

分類Dev

要素の値が変更されても、Syncfusionタブコントロールの値は更新されません

分類Dev

WPFでスタイルを変更してもストーリーボードは変更されません

分類Dev

リンクリストに追加された要素は、追加後に変更されたように見えます

分類Dev

リストビュータイルが変更されてもカスタムペインタは変更されません

分類Dev

プリマスを変更しても、ブートアニメーションは変更されません

分類Dev

ネストされたオブジェクトをキーで変更しても、NGRXでは効果がトリガーされません

分類Dev

畳み込み後も画像は変更されません

分類Dev

NSWorkspaceの「frontmostApplication」は最初の使用後も変更されません

分類Dev

更新後も作業項目は変更されません* .wit

分類Dev

C ++変数は、switchケースで宣言した後も変更されません

分類Dev

リロード後もPHPページは変更されません

Related 関連記事

  1. 1

    Vue v-forリストは、データが変更された後も更新されません

  2. 2

    @Stateが変更された後、SwfitUI要素は変更されません

  3. 3

    リストの最後の項目は追加後も変更されません

  4. 4

    RecyclerViewは変更後も変更されたままになりません

  5. 5

    <select>が変更されても.change()はトリガーされません

  6. 6

    Vue v-forオブジェクトは、データが変更された後も更新されません

  7. 7

    変更後もカウントは更新されません

  8. 8

    フックされた要素が変更されてもコンポーネントは変更されません

  9. 9

    Java変数は変更されていません、参照した後でも変更されました

  10. 10

    データが変更されても要素は更新されません

  11. 11

    Matplotlibで変更されたヒストグラムは、変更後に表示されません

  12. 12

    Dockerボリュームは変更後にコンテナーで更新されましたが、ホストでは何も起こりません

  13. 13

    TextContentの長さはDOM操作後も変更されません

  14. 14

    FlatListのReactNative ios Switchは、値が変更された後もトグルしません

  15. 15

    ngOptionsが変更されてもngModelは更新されません

  16. 16

    DBが変更されてもUIは更新されません

  17. 17

    Xamarin.FormsでPropertyChangedが呼び出されても、更新されたリストはUIで変更されません

  18. 18

    値が変更されても、CachedNetworkImageは変更されません

  19. 19

    要素の値が変更されても、Syncfusionタブコントロールの値は更新されません

  20. 20

    WPFでスタイルを変更してもストーリーボードは変更されません

  21. 21

    リンクリストに追加された要素は、追加後に変更されたように見えます

  22. 22

    リストビュータイルが変更されてもカスタムペインタは変更されません

  23. 23

    プリマスを変更しても、ブートアニメーションは変更されません

  24. 24

    ネストされたオブジェクトをキーで変更しても、NGRXでは効果がトリガーされません

  25. 25

    畳み込み後も画像は変更されません

  26. 26

    NSWorkspaceの「frontmostApplication」は最初の使用後も変更されません

  27. 27

    更新後も作業項目は変更されません* .wit

  28. 28

    C ++変数は、switchケースで宣言した後も変更されません

  29. 29

    リロード後もPHPページは変更されません

ホットタグ

アーカイブ