|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 sunql 于 2017-3-30 10:57 编辑
list1=[1,3,5,6,7,2,]
list3=list1
list1.sort()
list1和list3出来结果都是[1,2,3,5,6,7]
如果我变成
list1=1
list3=list1
list1=2
那为什么list3不是等于2呢?
还有12课中
list3=[name +':'+slogan[2:] for slogan in list1 for name in list2 if slogan[0]==name[0]]
我把他写成非列表推导式前
list1=['4.adidas','2.李宁','3.fishc','1.耐克']
for name in list1:
print(name)
为什么打印出来的结果是:
4.adidas
2.李宁
3.fishc
1.耐克
不是应该在打印name[1] 这样,才会把里面列表中各个值打出来吗?
为什么print(name) 就分着打出来了?
这是两不同的问题吧。
对于数组来说,赋值只是重新取个名字。只有用copy才是重新划分一个内存空间。
所以list1和list3其实是指向同一个地址的。用id()可以直接查看内存地址。
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> a = 1
>>> b = 2
>>> id(a)
493508880
>>> id(b)
493508896
>>> a = 3
>>> id(a)
493508912
>>> id(b)
493508896
>>>
|
|