Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧

简介: 本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。

列表_切片赋值_slice_assignment_嫁接

回忆

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

  • 可以通过 切片 改变原列表吗??🤔

给切片赋值

  • 把nlist的尾巴 给换了
nlist = list(range(5))
nlist
nlist[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))
nlist
nlist[3:] = ['a', 'b']
nlist
  • 这是嫁接 到 列表尾巴 上

  • 可以 在头上 嫁接 吗?

接在前面

nlist = list(range(8))
nlist[:4] = list("oeasy")
nlist
  • 尝试把车头换了

  • 换的时候 数量 可以 不对等?

数量不对等

  • 尝试
nlist = list(range(5))
nlist
nlist[:2] = "oeasy"
nlist
  • 车厢节数 不影响 对接

  • 找到位置
  • 接上 就行

  • 在 尾部 接上 也一样吗?

尾巴

nlist = list(range(5))
nlist
nlist[2:]
nlist[2:] = ["egg"]
nlist
  • 留下 前两片
  • 后面 加 鸡蛋

  • 想把 鸡蛋 夹在
  • 两片面包之间

夹鸡蛋

  • 怎么办?

接在中间

nlist = list(range(5))
nlist
nlist[1:4]
nlist[1:4] = ["fish"]
nlist
  • Tuna sandwich
  • 替换 找到中间面包

  • 可以来个双层牛肉堡吗?

双层

nlist = list(range(5))
nlist
nlist[1:2] 
nlist[1:2] = ["beef"]
nlist
  • 先来牛排
  • 注意这个牛排 是整个的

第二片牛肉

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

  • 成功

新需求

  • 开局
  • 使用0、1 两片面包
  • 双层牛肉

  • 制作一个牛肉堡呢?

夹心

nlist = list(range(2))
nlist
  • 面包片 已完成

  • 怎么 把新夹心放进去呢?

塞入夹心

  • 找到位置
nlist
nlist[1:1]
nlist[1:1] = "beef"
  • nlist[1:1]切片
  • 是一个 空列表

  • 空列表 也可以 被替换

双层牛堡

  • 开局三片面包

  • 要做双层牛堡

三块面包

  • 初始状态
  • 三片面包
nlist = list(range(3))
nlist
nlist[1:1]
nlist[1:1] = ["beef"]
nlist
  • 最后 还能
  • 加点 西红柿吗?

  • 交给你 来制作 了!

总结

  • 这次 对切片 赋了值
  • 新切片
  • 可以 接到 头上
  • 也可以 接到 尾巴上
  • 还可以 接到 中间

  • 字符串 也可以 进行切片 吗??🤔
  • 下次再说 👋
相关文章
|
3月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
430 116
|
3月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
463 119
|
3月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
|
3月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
353 82
|
Python
python 赋值语句
python 赋值语句
2096 0
|
4月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
333 102
|
4月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
356 104
|
4月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
285 103
|
4月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
210 82
|
3月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
265 3

推荐镜像

更多