相关疑难解决方法(0)

如何克隆或复制列表?

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

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

python clone copy list

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

754
推荐指数
22
解决办法
55万
查看次数

在保留原件的同时传递列表

所以我在教自己Python,我遇到了列表问题.我想传递我的函数列表并在保留原始列表的同时弹出项目.如何使python"instance"成为传递的列表,而不是将指针传递给原始列表?

例:

def burninate(b):
    c = []
    for i in range(3):
        c.append(b.pop())
    return c

a = range(6)
d = burninate(a)
print a, d
Run Code Online (Sandbox Code Playgroud)

输出:[0,1,2] [
5,4,3 ] 期望输出:[0,1,2,3,4,5] [5,4,3]

谢谢!

python list

12
推荐指数
4
解决办法
369
查看次数

修改原始列表时如何制作对象列表的副本?

可能重复:
如何在python中克隆列表?
在Python中复制列表的最佳方法是什么?

original_list = [Object1(), Object2(), Object3()]
copy_list = original_list
original_list.pop()
Run Code Online (Sandbox Code Playgroud)

如果我从原始列表中删除一个对象,我怎样才能保持副本列表不被更改?

原始清单

[<Object.Object instance at 0x00EA29E0>, <Object.Object instance at 0x00EA2DC8>, <Object.Object instance at 0x00EA2EE0>]
Run Code Online (Sandbox Code Playgroud)

弹出原始列表后复制列表(我希望它等于上面的内容)

[<Object.Object instance at 0x00EA29E0>, <Object.Object instance at 0x00EA2DC8>]
Run Code Online (Sandbox Code Playgroud)

python list object

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

为什么原始列表会发生变化?

我写了一个函数SwapCities,它能够在列表中交换条目3和4.

所以fe [0,1,2,3,4]应该变成[0,1,2,4,3].这个功能很完美,但奇怪的是我的原始列表也改变了我不想要的.

这是我的代码:

def SwapCities(solution):
    n = 3##randint(0,NumberOfCities-1)
    m = 4##randint(0,NumberOfCities-1)
    result = solution
    temp1 = solution[n]
    temp2 = solution[m]
    result[n] = temp2
    result[m] = temp1
    return result
Run Code Online (Sandbox Code Playgroud)
print "Start"
IncumbentSolution = list(x for x in range(0,NumberOfCities))
print IncumbentSolution

print "After swap" NewSolution = SwapCities(IncumbentSolution)
print NewSolution

print "Original solution"
print IncumbentSolution
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

How many cities?
8 Start [0, 1, 2, 3, 4, 5, 6, 7]
After swap [0, 1, 2, 4, 3, 5, 6, 7]
Original solution [0, …
Run Code Online (Sandbox Code Playgroud)

python function list

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