Python学习之114514和1433223的区别

寒假打卡第十天,当前mit6.100L进度(10/26)

今日主题Lists and Mutability(列表和可变性)

先总结以下三点,明天要整理一下可变性的陷阱:

1、对列表原地操作的方法

这些方法直接对列表进行操作,所以返回值就像print()一样是None

L = [2, 7, 6]

L1 = L.append(1)
"""
可以直接写成
L.append()
直接对列表本身进行元素增加操作,返回值为None
"""
# L1 = None L = [2, 7, 6, 1]

L2 = L.sort()    
"""
可以直接写成
L.sort()
直接对列表本身进行排序,返回值为None
"""
# L2 = None L = [1, 2, 6, 7]

L3 = L.extend([3, 5])
L4 = L.extend( [ [4, 7], [9, 8] ] )
"""
可以直接写成
L.extend()
直接增添列表"内"元素到列表,返回值为None
"""
# L3 = None L = [1, 2, 6, 7, 3, 5]
# L4 = None L = [1, 2, 6, 7, 3, 5, [4, 7], [9, 8]]

L5 = L.clear()
"""
可以直接写成
L.clear()
直接清空列表元素,返回值为None
"""
# L5 = None L = []

2、对L.sort()和sorted(L)进行区分

前者直接原地对列表操作,后者则是创建一个排序后的副本

# L.sort()和sorted(L)的区别
L1 = [1, 1, 4, 5, 1, 4]
L1.sort() # L1 = [1, 1, 1, 4, 4, 5] 直接原地进行排序

L2 = [1, 4, 3, 3, 2, 2, 3]
# L2 = sorted(L2) # 赋值回自己,一般不这么做
L3 = sorted(L2)
# L3 = [1, 2, 2, 3, 3, 3, 4], L2保持不变,也就是创建了一个排序过的副本L3

3、我们可以使用id()函数

来查看这些对象在内存中的地址(唯一标识符)

L = [4,5,6]
print(L)
print(id(L))
L.clear()
print(L)
print(id(L)) # 看看clear()前后,L的内存地址是多少

print('\nL.clear() vs. L = []\n')

L = [4,5,6]
print(L)
print(id(L))
L = []
print(L)
print(id(L))  # 看看L=[]前后,L的内存地址是多少

运算结果:

[4, 5, 6]
2691759858112
[]
2691759858112

L.clear() vs. L = []

[4, 5, 6]
2691759857792
[]
2691759857984

顺带一提

print()函数的返回值也是None

print(print("666"))
666
None

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值