zwzddd919 发表于 2020-11-7 13:23:05

新人求助,关于列表

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],newlist1-1]=newlist1-1],newlist1]
    newlist1=newlist2-1
    newlist1=newlist2[::]
    newlist1='zuo'
    return newlist1


listopen.append(list1)
nlist1=[]
for i in listopen:
    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']]
全都改变了,而不是只改变新加入的列表,感觉并没有用列表直接赋值啊

昨非 发表于 2020-11-7 13:29:56

本帖最后由 昨非 于 2020-11-7 13:31 编辑

你这代码有啥意义吗,绕口令??
怎么恶心怎么写啊,,,,

那个老师给学生讲语法用这种例子啊,,,讲这种,,不是磋伤学习积极性的吗

昨非 发表于 2020-11-7 13:36:04

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[::]   #复制list
    newlist1=newlist2[::] #复制list
    newlist1],    newlist1-1]   =   newlist1-1],    newlist1]
    #对应newlist1的第一个子列表里 索引为4的元素和索引为3的元素 交换位置
    newlist1=newlist2-1#newlist1里的元素4改变为3
    newlist1=newlist2[::]   #newlist1里的第一个None变成整个newlist2
    newlist1='zuo' #newlist1里最后一个元素:none -> "zuo"
    return newlist1#返回newlist1


listopen.append(list1)
nlist1=[]
for i in listopen:
    nlist1.append(i)
listopen.append(zuoyi(nlist1))
print(listopen)

昨非 发表于 2020-11-7 13:37:36

把函数给你注释清楚了,你的测试结果完全没毛病

理解了记得给个【最佳答案】

zwzddd919 发表于 2020-11-7 14:03:30

昨非 发表于 2020-11-7 13:37
把函数给你注释清楚了,你的测试结果完全没毛病

理解了记得给个【最佳答案】

我想得到的结果是下面这样啊,不知道怎么改呢
[[['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']]

昨非 发表于 2020-11-7 14:13:54

zwzddd919 发表于 2020-11-7 14:03
我想得到的结果是下面这样啊,不知道怎么改呢
[[['1', '2', '3', ' ', '8', '4', '7', '6', '5'], 4,...

奇怪的要求

昨非 发表于 2020-11-7 14:17:58

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],    newlist1-1]   =   newlist1-1],    newlist1]   
    #对应newlist1的第一个子列表里 索引为4的元素和索引为3的元素 交换位置
    newlist1=newlist2-1#newlist1里的元素4改变为3
    newlist1=newlist2[::]   #newlist1里的第一个None变成整个newlist2
    newlist1='zuo' #newlist1里最后一个元素:none -> "zuo"
    #加一行
    newlist1=newlist1
    return newlist1#返回newlist1


print(zuoyi(list1))

kelby 发表于 2020-11-7 16:43:29

看得头皮发麻

昨非 发表于 2020-11-8 11:05:24

楼主记得及时结帖啊
页: [1]
查看完整版本: 新人求助,关于列表