1 # 切片 通过下标取值的,都可以用切片
2 li = ['xiaoming','xiaowang','xiaoli','xiaozhang','xiaohei']
3
4 li2 = li#浅拷贝,内存地址一样
5 print("li的内存地址是:%s" % id(li))#查看内存地址
6 print("li2的内存地址是:%s" % id(li2))
7
8 li3 = li[:]#深拷贝,内存地址不一样
9 print("li3的内存地址是:%s" % id(li3))
10
11 li4 = li[0:5:2]#2是步长
12 print('li4是%s' % li4)
C:\ProgramData\Anaconda3\python.exe E:/cnz/day2/day3/切片.py
li的内存地址是:30171656
li2的内存地址是:30171656
li3的内存地址是:30171720
li4是['xiaoming', 'xiaoli', 'xiaohei']
Process finished with exit code 0
1 li = ['xiaoming', 'xiaowang', 'xiaoli', 'xiaozhang', 'xiaohei']
2 # 浅拷贝,内存地址一样
3 li2 = li
4 # 深拷贝,内存地址不一样
5 li3 = li[:]
6 print("li的内存地址是:%s" % id(li))
7 print("li2的内存地址是:%s" % id(li2))
8 print("li3的内存地址是%s" % id(li3))
9 # 修改li,浅拷贝li2会跟着改变,因为内存地址一样,深拷贝li3不会改变,以为内存地址不一样
10 li.append('AA')
11 print("li是%s" % li)
12 print("li2是%s" % li2) # li2也会改变
13 print("li3是%s" % li3) # li3不会改变
C:\Users\admin\Miniconda3\python.exe E:/python/切片.py
li的内存地址是:23160352
li2的内存地址是:23160352
li3的内存地址是23161832
li是['xiaoming', 'xiaowang', 'xiaoli', 'xiaozhang', 'xiaohei', 'AA']
li2是['xiaoming', 'xiaowang', 'xiaoli', 'xiaozhang', 'xiaohei', 'AA']
li3是['xiaoming', 'xiaowang', 'xiaoli', 'xiaozhang', 'xiaohei']
Process finished with exit code 0