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
  • 最后 还能
  • 加点 西红柿吗?

  • 交给你 来制作 了!

总结

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

  • 字符串 也可以 进行切片 吗??🤔
  • 下次再说 👋
相关文章
|
2天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 数据采集 人工智能
古茗联名引爆全网,阿里云三层防护助力对抗黑产
阿里云三层校验+风险识别,为古茗每一杯奶茶保驾护航!
古茗联名引爆全网,阿里云三层防护助力对抗黑产
|
4天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
531 1
kde
|
4天前
|
人工智能 关系型数据库 PostgreSQL
n8n Docker 部署手册
n8n是一款开源工作流自动化平台,支持低代码与可编程模式,集成400+服务节点,原生支持AI与API连接,可自托管部署,助力团队构建安全高效的自动化流程。
kde
358 3
|
2天前
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
733 4
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
|
3天前
|
JavaScript 开发工具 Android开发
如何在原生 App 中调用 Uniapp 的页面?
如何在原生 App 中调用 Uniapp 的页面?
243 138
|
4天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
本文介绍RAG(检索增强生成)技术,结合Spring AI与本地及云知识库实现学术分析AI应用,利用阿里云Qwen-Plus模型提升回答准确性与可信度。
254 91
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践