「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python で関数内のリストを変更する方法: 参照渡しまたはインプレース変更?

Python で関数内のリストを変更する方法: 参照渡しまたはインプレース変更?

2024 年 11 月 8 日に公開
ブラウズ:942

How to Modify a List Within a Function in Python: Pass by Reference or In-Place Modification?

関数内のリストの変更

関数内でリスト パラメーターを操作する場合、関数に渡される参照は元のリストを指します。関数内で list_arg 変数に加えられた変更はローカル スコープに限定され、元のリストには影響しません。

この問題を回避して元のリストを変更するには、要素をリストに直接割り当てる必要があります。リスト全体を新しい値に再割り当てするのではなく、次に例を示します:

def function1(list_arg):
   a = function2()    # function2 returns an array of numbers
   list_arg[:] = list(a)

list1 = [0] * 5
function1(list1)
print(list1)  # [1, 2, 3, 4, 5]

この変更されたコードでは、スライス表記 list_arg[:] を使用して list(a) の要素を元のリストに割り当てます。

インプレース変更は便利そうに見えますが、理解しにくくなり、コードを保守する開発者に混乱をもたらす可能性があることに注意することが重要です。一般に、明確さと読みやすさのために、明示的な再割り当てが好まれます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3