値を変更するときに関数のインデックスを介してリストアイテムにアクセスすると機能するのに、イテレータ変数の方法では機能しないのはなぜですか?

ad1tyawagh:

increment()が定義した関数にリストを渡して、リストの要素をインクリメントしようとしています

これを行うには2つの方法を試しました。

  • インデックスを使用してアクセスします。
# List passed to a function

def increment(LIST):
    for i in range(len(LIST)):
        LIST[i] += 1
    return LIST

li = [1, 2, 3, 4]
li = increment(li)
print(li)

これは望ましい結果を出力します: [2, 3, 4, 5]

  • イテレータ変数を使用してアクセスする。
# List passed to a function

def increment(LIST):
    for item in LIST:
        item += 1
    return LIST

li = [1, 2, 3, 4]
li = increment(li)
print(li)

これは出力します: [1, 2, 3, 4]

この違いの理由を知りたいのですが。

プラム0:

これは、Pythonでは整数が不変であるためです。操作を実行すると、基本的に新しい整数が作成されますitem +=1

この投稿にこのトピックに関する詳細情報があります

リストを更新する場合は、新しいリストを作成するか、リストのエントリを更新する必要があります。

def increment(LIST):
    result = []
    for item in LIST:
        result.append(item+1)
    return result

li = [1, 2, 3, 4]
li = increment(li)
print(li)

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

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

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ