多做一张试卷 发表于 2021-12-9 09:47:32

大神求助!!刚刚在做作业遇到一个列表的题目想不通

大神求助!!刚刚在做作业遇到一个列表的题目想不通

s='3675'
list1 = ['aa',123,'bb',56]
list1=s
print(list1)


为什么这道题目最后的结果是['aa','6','5','bb',56]
list1不是对应的是123这个值吗??
求教求教{:5_108:} {:5_108:}

阿萨德按时 发表于 2021-12-9 11:12:32

list1对应的就是123呀这步list1=s,把123替换成了6,7

luck78 发表于 2021-12-9 17:17:26

阿萨德按时 发表于 2021-12-9 11:12
list1对应的就是123呀这步list1=s,把123替换成了6,7

问题是 s取出来的值是67,为什么结果是'6', '7'

干虾皮 发表于 2021-12-10 01:47:21

本帖最后由 干虾皮 于 2021-12-10 01:58 编辑

1.S='3675'
2.list1 = ['aa',123,'bb',56]
3.上面这两行应该肯定不会让你迷糊,
4. print(len(list1))这条指令的作用是为了让您看清后面赋值时候怎么把两个单字符字符串,放到一个列表裂片里面
5.list1=s让你迷糊的是这一行,我们把这一行分成多步,你就会豁然开朗:
6.Print(list1)这条指令的目的是让你看到list1有哪些元素,这个打印结果你会看到是,注意这个中括号噢,这证明打印结果是一个列表
7.Print(s) 您会得到一个结果67,注意这个理解很有讲究,首先这是字符串67,也就是说它是有两个单字符串6和7,其中6对应的是s,7是s,可以把67理解为两个长度为1的字符串
8. list1=s这个语句结合6.我们知道这里面说白了就是list1裂片需要被赋值,那自然list1,list1,list1的值都不变,我们只用关注list,我们再回顾7.知道s=s,s(没有这个逗号语法噢)也就是我们要把s和s的值都赋值给list1,这很显然就是把两个元素‘6’和‘7’放入一个列表,那这个列表自然是['6','7']
9.print(len(list1)),此步打印结果和4.比较就知道长度有4变成了5,就是多了一个元素,原来的,变成了['6','7']
10.print(list1),List1的其它元素没有变化自然就是['aa','6','7','bb',56]
正面回答您的疑问:
list1不是123吗?
实际不是,是,这两个的区别是元素和列表,列表的裂片是列表,就因为是列表才可以接受'6'和‘7’两个元素,如果一个元素是无法赋值两个元素的
s取出来的是是67,为什么结果是'6','7'?
这个问题实际我上面已经回答了,这里在专门回答首先在idle里面这时候看到的67是‘67’,您可以做一个比较s==67您一定会得到false的结果s='67'一定为true,为啥被“67”分开为‘6’,‘7’这是因为前面的list1是一个列表,虽然list1和list看起来一样但实际是不同的如果前面是list1=s那就会是'67'. 您也可以尝试list1=‘67’,list1='67‘的效果

这个题还是蛮有意思的,需要说明的是我说习惯了裂片,小甲鱼叫它分片。在努力改,但是太难了

3142618781 发表于 2021-12-18 13:47:49

干虾皮 发表于 2021-12-10 01:47
1.S='3675'
2.list1 = ['aa',123,'bb',56]
3.上面这两行应该肯定不会让你迷糊,


看不明白

干虾皮 发表于 2021-12-19 19:22:40

您说出不明白的地方,大家好帮助您。
页: [1]
查看完整版本: 大神求助!!刚刚在做作业遇到一个列表的题目想不通