相关疑难解决方法(0)

如何克隆或复制列表?

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

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

python clone copy list

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

python:对我的复制变量的更改会影响原始变量

我有一个列表,我创建了一个副本,以便在保持原始列表的同时进行一些操作.但是,当我设置copy_list相同时org_list,它们会变成同一个东西,如果我改变copy_list,它org_list也会变化.例如:

org_list = ['y', 'c', 'gdp', 'cap']

copy_list = org_list

copy_list.append('hum')

print(copy_list)
print(org_list)
Run Code Online (Sandbox Code Playgroud)

回报

['y', 'c', 'gdp', 'cap', 'hum']
['y', 'c', 'gdp', 'cap', 'hum']
Run Code Online (Sandbox Code Playgroud)

我不太了解实际发生的事情,但它看起来org_list实际上已经过去了,copy_list所以它们实际上是同一个东西.

有没有办法制作org_list的独立副本而不做一些笨拙的事情:

copy_list = []
for i in org_list:
    copy_list.append(i)
Run Code Online (Sandbox Code Playgroud)

我这样说是因为我对其他类型的变量有同样的问题,例如pandas数据帧.

python

42
推荐指数
4
解决办法
5万
查看次数

如何在Python中创建不可变列表?

我在程序中遇到变量问题.我需要在循环评估期间保留两个或三个版本的列表.例如:

x=[0]  
y=[0]  
while True:
        y=x  
        x[0]+=1  
        print (y,x)    
        input()
Run Code Online (Sandbox Code Playgroud)

当我按Enter它显示[1] [1]; [2] [2]; [3] [3]...但我需要将列表的先前状态保持在变量中:[0] [1]; [1] [2]; [2] [3] ...

代码应该是什么?

python variables list

4
推荐指数
2
解决办法
1573
查看次数

Python:覆盖两个变量

在我使用python期间,我遇到了一个阻塞问题.我有一些SomeFunction应该做一些简单的计算(并且还要对它进行排序 - 我删除那段代码以使其更清晰)在给定的整数向量上并返回新的.主要问题是,每个内部循环的结果必须成为下一个的输入,但变量k和X似乎在内存中具有相同的地址.

功能如下:

def SomeFunction(k, N):
    X = range(N);
    for i in range(N):
        for j in range(3):
            X[i] = k[i]*2;
        print "X:";
        print X;
        print "k -> :";
        print k
        k = X;
        print "============================";
    return k;
Run Code Online (Sandbox Code Playgroud)

它产生输出:

    X:
    [0, 1, 2, 3, 4, 5, 6, 7]
    k -> :
    [0, 1, 2, 3, 4, 5, 6, 7]
    ============================

    X:
    [0, 8, 2, 3, 4, 5, 6, 7]
    k -> :
    [0, 8, 2, 3, 4, 5, 6, 7] …

python sorting variables overwrite

3
推荐指数
1
解决办法
149
查看次数

python 中的列表赋值

我有如下代码,当我打印 list1 和 list2 时,它显示相同的元素,但我在将现有 list1 分配给 list2 之后添加了 9,因此它不应在 list2 中显示 9。

list1=[1,2,3,4]
list2=list1
list1.insert(4,9)
print(list1)
print(list2)
Run Code Online (Sandbox Code Playgroud)

请消除我的疑问。

python list python-3.x

2
推荐指数
1
解决办法
2万
查看次数

如何在Python函数中传递变量?

如果我在Python 2.7中运行以下代码,我会为a和b打印[2.,2.,2.].为什么b与a一起变化?非常感谢!

def test_f(x):
    a = np.zeros(3)
    b = a
    for i in range(3):
        a[i] += x
    print a
    print b
    return 0

test_f(2)
Run Code Online (Sandbox Code Playgroud)

python variables

-1
推荐指数
1
解决办法
79
查看次数

标签 统计

python ×6

list ×3

variables ×3

clone ×1

copy ×1

overwrite ×1

python-3.x ×1

sorting ×1