|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是这样的
old = [1,2,3,4,5,6]
new = old
old = [6]
print(new)
请问会打印什么
窝天真的以为会打印:
[6]
因为在11讲的作业中详细解释了为什么在重新开辟一个与已有列表相同列表的时候必须要用分片方式赋值而不是直接赋值
那贼大?因为直接赋值的话python只会直接给同样的东西打上不同的标签,例如:
list1 = [1,2,3,4,5,6]
list2 = list1[:]
list3 = list1
如果对list1做一些修改,那么list3也会随之改变。
比如这样
>>> list1 = [1,2,3,4,5,6]
>>> list2 = list1[:]
>>> list3 = list1
>>> list1.sort(reverse = True)
>>> list1
[6, 5, 4, 3, 2, 1]
>>> list2
[1, 2, 3, 4, 5, 6]
>>> list3
[6, 5, 4, 3, 2, 1]
list3会随着list1的改变而改变
那么问题来了,既然答案不是 [6],那我合理的推测一下,是不是列表的方法(问题一:看视频里的意思是:name.XXXX就叫做name的XXXX方法?)
(问题二:)对列表的操作才会同时影响存放在同一内存区域(只是有不同标签)的列表,而非方法操作的方式不会影响其他标签而会为这个标签开辟新的内存区域存放内容?
我都觉得这句话很晦涩,但是不好描述……希望小甲鱼能看明白。
其实我就是没看懂第十二讲作业的第一个题
------------------------
另外还有个无关紧要的问题三:如何清屏,类似matlab里那种clear命令。
一般都是用第三方ide写小程序,但是看视频学概念的时候经常会开shell跟着视频敲,因为验证简单概念很方便嘛,但是假如超过一整屏就只能在屏幕最下面操作看起来很费劲,我还是隐藏工具栏党成员,真的是很别扭,网上也找不到好的方法,只能关闭再打开,这个时候我超不想动手去够鼠标。
还有个问题四,比如像list,str这种内建函数,如果一不小心在shell里赋了值,如何恢复默认值。
顺便,附件里的图有一个是第九讲作业里瑕不掩瑜的小bug,把green打成了blue……其实也可以说是把blue写成了green……
|
-
-
评分
-
| 参与人数 2 | 荣誉 +6 |
鱼币 +6 |
贡献 +3 |
收起
理由
|
小甲鱼
| + 5 |
+ 5 |
+ 3 |
学得相当仔细!! |
zooo
| + 1 |
+ 1 |
|
楼主学的很仔细啊~ |
查看全部评分
|