上次我们了解了
切片操作
切片和索引 有点像
索引得到的是 一个列表项
切片得到的是 列表项的列表
切片 主要 有2个端点
这两个端点 负责 位置
start 开始 包括在内
stop 结束 不包括在内
前闭后开

可以通过 切片 改变原列表吗??🤔
给切片赋值把nlist的尾巴 给换了
nlist = list(range(5))nlistnlist[2:]nlist[2:] = [5, 6]nlist
对列表切片赋值之后
原列表 就改变了

发生了什么呢?
过程用id观察地址
nlist = list(range(5))print(nlist)print(id(nlist))nlist_slice = nlist[2:]print(nlist[2:])print(id(nlist[2:]))nlist[2:] = [5, 6]print(nlist[2:])print(id(nlist[2:]))print(nlist)print(id(nlist))
列表的 地址 没变
列表切片的 地址 也没变

什么变了呢?
移花接木nlist[2:]
切片里面的东西 变了

嫁接技术
砧木是[0, 1, 2]
接穗是['a', 'b']
nlist = list(range(5))nlistnlist[3:] = ['a', 'b']nlist
这是嫁接 到 列表尾巴 上

可以 在头上 嫁接 吗?
接在前面
nlist = list(range(8))nlist[:4] = list("oeasy")nlist
尝试把车头换了

换的时候 数量 可以 不对等?
数量不对等尝试
nlist = list(range(5))nlistnlist[:2] = "oeasy"nlist
车厢节数 不影响 对接

找到位置
接上 就行

在 尾部 接上 也一样吗?
尾巴nlist = list(range(5))nlistnlist[2:]nlist[2:] = ["egg"]nlist
留下 前两片
后面 加 鸡蛋

想把 鸡蛋 夹在
两片面包之间
夹鸡蛋
怎么办?
接在中间nlist = list(range(5))nlistnlist[1:4]nlist[1:4] = ["fish"]nlist
Tuna sandwich
替换 找到中间面包

可以来个双层牛肉堡吗?
双层nlist = list(range(5))nlistnlist[1:2] nlist[1:2] = ["beef"]nlist
先来牛排
注意这个牛排 是整个的

第二片牛肉切成条
nlist nlist[3:4]nlist[3:4] = list("beef")nlist
再放进去

成功
新需求开局
使用0、1 两片面包
双层牛肉

制作一个牛肉堡呢?
夹心nlist = list(range(2))nlist
面包片 已完成

怎么 把新夹心放进去呢?
塞入夹心找到位置
nlistnlist[1:1]nlist[1:1] = "beef"
nlist[1:1]切片
是一个 空列表

空列表 也可以 被替换
双层牛堡开局三片面包

要做双层牛堡
三块面包初始状态
三片面包
nlist = list(range(3))nlistnlist[1:1]nlist[1:1] = ["beef"]nlist
最后 还能
加点 西红柿吗?

交给你 来制作 了!
总结这次 对切片 赋了值
可以 接到 头上
也可以 接到 尾巴上
还可以 接到 中间
新切片

字符串 也可以 进行切片 吗??🤔
下次再说 👋