在Python中克隆或复制列表有哪些选项?
在使用时new_list = my_list,每次都会对new_list更改进行任何修改my_list.为什么是这样?
我需要在Python中创建一个列表列表,所以我输入以下内容:
myList = [[1] * 4] * 3
Run Code Online (Sandbox Code Playgroud)
列表看起来像这样:
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)
然后我改变了最里面的一个值:
myList[0][0] = 5
Run Code Online (Sandbox Code Playgroud)
现在我的列表看起来像这样:
[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)
这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?
通过 for 循环创建字典列表
我一直在尝试通过 for 循环创建字典列表,代码如下所示
a=["x","y","z"]
b=[1,2,3]
dict1={}
superlist=[]
for i in range(0,len(a)):
dict1['name']=a[i]
dict1['values']=b[i]
superlist.append(dict1)
Run Code Online (Sandbox Code Playgroud)
我期望的输出是
[{'name':'x', 'values':1},{'name':'y', 'values':2},{'name':'z', 'values':3}],
相反,我得到
[{'name':'z', 'values':3},{'name':'z', 'values':3},{'name':'z', 'values':3}].
我不太确定这里发生了什么,如果有人能解释并帮助我得到我想要的结果,那就太好了。