相关疑难解决方法(0)

如何克隆或复制列表?

在Python中克隆或复制列表有哪些选项?

在使用时new_list = my_list,每次都会对new_list更改进行任何修改my_list.为什么是这样?

python clone copy list

2289
推荐指数
16
解决办法
149万
查看次数

为什么函数可以修改调用者所感知的某些参数,而不是其他参数?

我正在尝试理解Python的变量范围方法.在这个例子中,为什么f()能够改变x内部感知main()的价值,而不是价值n

def f(n, x):
    n = 2
    x.append(4)
    print('In f():', n, x)

def main():
    n = 1
    x = [0,1,2,3]
    print('Before:', n, x)
    f(n, x)
    print('After: ', n, x)

main()
Run Code Online (Sandbox Code Playgroud)

输出:

Before: 1 [0, 1, 2, 3]
In f(): 2 [0, 1, 2, 3, 4]
After:  1 [0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

python

167
推荐指数
5
解决办法
12万
查看次数

python列表的值不是通过引用

我们来举个例子吧

a=['help', 'copyright', 'credits', 'license']
b=a
b.append('XYZ')
b
['help', 'copyright', 'credits', 'license', 'XYZ']
a
['help', 'copyright', 'credits', 'license', 'XYZ']
Run Code Online (Sandbox Code Playgroud)

我想在列表'b'中附加值,但列表'a'的值也已更改.
我想我不知道为什么会这样(python通过引用传递列表).
我的问题是"如何通过值传递它,以便附加'b'不会改变'a'中的值?"

python reference list

139
推荐指数
8
解决办法
15万
查看次数

Python numpy创建副本而不是引用

我正在尝试用numpy创建一个python程序,但我遇到了一个问题:

width, height, pngData, metaData = png.Reader(file).asDirect()
planeCount = metaData['planes']
print('Bildgroesse: ' + str(width) + 'x' + str(height) + ' Pixel')
image_2d = np.vstack(list(map(np.uint8, pngData)))
imageOriginal_3d = np.reshape(image_2d, (width, height, planeCount)) 
imageEdited_3d = imageOriginal_3d
Run Code Online (Sandbox Code Playgroud)

这是我的代码,用png-Image读取.现在我想编辑imageEdited_3d但不是imageOriginal_3d,像这样:

imageEdited_3d[x,y,0] = 255
Run Code Online (Sandbox Code Playgroud)

但那时imareOriginal_3d变量的值与那个变量相同imageEdited_3d......

有谁知道,我怎么解决这个问题?所以它不仅创建了一个引用,而且创建了一个真正的副本?:/

python numpy copy python-3.x

0
推荐指数
1
解决办法
3728
查看次数

标签 统计

python ×4

copy ×2

list ×2

clone ×1

numpy ×1

python-3.x ×1

reference ×1