我对这两种实现感到困惑:
实施1:
arr1 = []
arr2 = []
for j in range(2):
arr1.append({"vals":[random() for j in range(2)]} )
arr2.append(arr1)
for i in arr2:
print(i)
实施2:
arr3 = [{'vals': [random() for i in range(2)]} for i in range(2)]
for i in arr3:
print(i)
输出:
实施1:
[{‘vals’:[0.36439704360819525,0.8234398731777764]},{‘val’:[0.8452416981328936,0.42974230274939684]}]
实施2:
{"vals":[0.9742491342100810.515705525022607]}{‘vals’:[0.81420817640429,0.6701375952682302]}
for循环的2个实现和我可以用外部for循环进行第二个实现之间有区别吗?
在您的实现1中,您将arr1创建为一个包含两个项(如{vals:[]}(的数组,并将其附加到arr2,arr2是一个包含一个项(即arr1(的数组
在implementation2中,创建的arr3与implementation1中的arr1类似。但没有任何arr2-我想你在这里有一个拼写错误,你倾向于在arr3中打印I,这就像{vals:[]}。