|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- list1=[['1','2','3',' ','8','4','7','6','5'],4,None,None]
- list2=[['1','2','3','8',' ','4','7','6','5'],4,None,None]
- listopen=[]
- listclosed=[]
- def zuoyi(list):
- newlist2=list[::]
- newlist1=newlist2[::]
- newlist1[0][newlist1[1]],newlist1[0][newlist1[1]-1]=newlist1[0][newlist1[1]-1],newlist1[0][newlist1[1]]
- newlist1[1]=newlist2[1]-1
- newlist1[2]=newlist2[::]
- newlist1[3]='zuo'
- return newlist1
- listopen.append(list1)
- nlist1=[]
- for i in listopen[0]:
- nlist1.append(i)
- listopen.append(zuoyi(nlist1))
- print(listopen)
复制代码
请问大佬们为什么这里listopen里的内容第二次像这样
[[['1', '2', '3', ' ', '8', '4', '7', '6', '5'], 4, None, None]]
[[['1', '2', '3', '8', ' ', '4', '7', '6', '5'], 4, None, None], [['1', '2', '3', '8', ' ', '4', '7', '6', '5'], 3, [['1', '2', '3', '8', ' ', '4', '7', '6', '5'], 4, None, None], 'zuo']]
全都改变了,而不是只改变新加入的列表,感觉并没有用列表直接赋值啊
- list1=[['1','2','3',' ','8','4','7','6','5'],4,None,None]
- list2=[['1','2','3','8',' ','4','7','6','5'],4,None,None]
- def zuoyi(list):
- newlist2=list[::] #复制list
- newlist1=newlist2[::] #复制list
- newlist1[0][newlist1[1]], newlist1[0][newlist1[1]-1] = newlist1[0][newlist1[1]-1], newlist1[0][newlist1[1]]
- #对应newlist1的第一个子列表里 索引为4的元素和索引为3的元素 交换位置
- newlist1[1]=newlist2[1]-1 #newlist1里的元素4改变为3
- newlist1[2]=newlist2[::] #newlist1里的第一个None变成整个newlist2
- newlist1[3]='zuo' #newlist1里最后一个元素:none -> "zuo"
- #加一行
- newlist1[0]=newlist1[2]
- return newlist1 #返回newlist1
- print(zuoyi(list1))
复制代码
|
|