在Python中克隆或复制列表有哪些选项?
在使用时new_list = my_list,每次都会对new_list更改进行任何修改my_list.为什么是这样?
我们来举个例子吧
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'中的值?"
我创建了一个代码,用于在音乐列表 ( music_list) 中挑选随机音乐并将它们添加到music_queue. 当我执行这段代码时,所有的元素music_list都被删除了,我不明白为什么。
print("Music list lenght : " + str(len(music_list)))
if len(music_queue) == 0:
tmp = music_list
while len(tmp) > 0:
music_queue.append(tmp.pop(randint(0,len(tmp) - 1)))
print("Music list lenght : " + str(len(music_list)))
Run Code Online (Sandbox Code Playgroud)