今天爱分享给大家带来Python中如何复制一个列表【面试题详解】,希望能够帮助到大家。
可以用切片的方法
new_list = old_list[:]
可以使用list()函数
new_list = list(old_list)
可以使用copy.copy(),比list()稍慢,因为它首先去查询old_list的数据类型
import copy new_list = copy.copy(old_list)
如果列表中包含对象,可以使用copy.deepcopy(), 所有方法中最慢,但有时候无法避免
import copy new_list = copy.deepcopy(old_list)
例子:
import copy
class Foo(object):
def __init__(self, val):
self.val = val
def __repr__(self):
return str(self.val)
foo = Foo(1)
a = ['foo', foo]
b = a[:]
c = list(a)
d = copy.copy(a)
e = copy.deepcopy(a)
# edit orignal list and instance
a.append('baz')
foo.val = 5
print "original: %r\n slice: %r\n list(): %r\n copy: %r\n deepcopy: %r" \
% (a, b, c, d, e)
结果:
original: ['foo', 5, 'baz'] slice: ['foo', 5] list(): ['foo', 5] copy: ['foo', 5] deepcopy: ['foo', 1]
效率简单比较
10.59 - copy.deepcopy(old_list) 10.16 - pure python Copy() method copying classes with deepcopy 1.488 - pure python Copy() method not copying classes (only dicts/lists/tuples) 0.325 - for item in old_list: new_list.append(item) 0.217 - [i for i in old_list] (a list comprehension) 0.186 - copy.copy(old_list) 0.075 - list(old_list) 0.053 - new_list = []; new_list.extend(old_list) 0.039 - old_list[:] (list slicing)
原文链接:http://blog.itblood.com/4438.html,转载请注明出处。

![淫荡灵魂v2.7.0 AI版[PC+安卓/1.11G/更新]Lewd Souls [v2.7.0] [同人SLG/汉化/动态]](/wp-content/uploads/replace/2025/09/27/79ac057d250a74003fbe273567232e9e.webp)