Python中的函数编辑列表

2024-09-29 23:27:26 发布

您现在位置:Python中文网/ 问答频道 /正文

所以基本上我在Python3中观察到

a = 5
def addFive(x):
    x+=5
    return x
print(addFive(a),a)

输出将是“10 5”,因为函数不改变a。 但是,列表的情况并非如此:

a = [1,2,3]

def b(x):
    z = x
    z.append(10)

b(a)
print(a)

当我运行这个函数时,它改变了实际的列表。你知道吗

现在我的问题是:为什么会发生这种情况,我在哪里可以读到更多关于这一点(老实说,我不知道如何词我的谷歌搜索),我如何才能避免这一点。请随时重定向到其他文章,因为这可能是一个常见的问题,但我真的找不到任何类似的。你知道吗

提前感谢:)


Tags: 函数列表returndef文章情况重定向python3
2条回答

Pythonlist中的每个元素都是内存中的一个位置,因此当您修改元素时,实际上是在修改内存中的引用。因此,如果您熟悉C++,将列表传递到Python中的函数,在概念上与引用传递类似。你知道吗

使用^{}模块。你知道吗

import copy

a = [1,2,3]

def b(x):
    z = copy.deepcopy(x)
    z.append(10)
    return z

b(a)
print(a)

这个指纹

[1, 2, 3, 10]
[1, 2, 3]

相关问题 更多 >

    热门问题