Python40-42:核心语法-数据容器-列表list-案例(解包、推导式)
列表案例一# 案例1. 将用户输入的10个数字存储到一个列表中并将列表中的数字进行排序输出其中的最小值、最大值和平均值。 # 1. 定义列表 num_list [] # 定义空列表 # 2. 将用户输入的10个数字存入列表 for i in range(10): # 循环的次数是固定的所以选用了for循环 num int(input(请输入一个有效的数字)) num_list.append(num) print(数字列表, num_list) # 3. 排序 num_list.sort() print(排序后的数字列表, num_list) # 4. 输出其中的最小值、最大值和平均值 --- sum()求和len()获取元素的个数列表的长度length print(最小值, num_list[0]) print(最大值, num_list[-1]) print(平均值, sum(num_list)/len(num_list)) # 补充min()获取最小值 max()获取最大值D:\py_project_heima\.venv\Scripts\python.exe D:\py_project_heima\第二章\test.py 请输入一个有效的数字56 请输入一个有效的数字45 请输入一个有效的数字76 请输入一个有效的数字23 请输入一个有效的数字43 请输入一个有效的数字65 请输入一个有效的数字109 请输入一个有效的数字232 请输入一个有效的数字232 请输入一个有效的数字65 数字列表 [56, 45, 76, 23, 43, 65, 109, 232, 232, 65] 排序后的数字列表 [23, 43, 45, 56, 65, 65, 76, 109, 232, 232] 最小值 23 最大值 232 平均值 94.6案例二解包# 案例2. 合并两个列表中的元素并对合并的结果进行去重处理去除列表中的重复元素。 # 定义列表 num_list1 [19, 23, 54, 64, 875, 20, 109, 232, 123, 54] num_list2 [55, 80, 72, 35, 60, 123, 54, 29, 91] # 1. 合并列表第一种方式 for num in num_list2: num_list1.append(num) print(合并后的原始列表,num_list1) # 2. 去重 new_list [] # 去重后的列表 for num in num_list1: # 判断new_list中是否存在num元素如果不存在再添加 if num not in new_list: # 运算符in 判断元素是否存在于列表中如果存在则返回True不存在返回False。逻辑运算符 not 表示取反。 new_list.append(num) print(去重后的列表,new_list)简化后用解包# 案例2. 合并两个列表中的元素并对合并的结果进行去重处理去除列表中的重复元素。 # 定义列表 num_list1 [19, 23, 54, 64, 875, 20, 109, 232, 123, 54] num_list2 [55, 80, 72, 35, 60, 123, 54, 29, 91] # 1. 合并列表第二种方式简单些 # 解包将列表这一类容器解开成一个一个独立的元素 # 组包将多个值合并到一个容器 num_list [*num_list1, *num_list2] # 简化 print(合并后的原始列表,num_list) # 2. 去重 new_list [] # 去重后的列表 for num in num_list: # 判断new_list中是否存在num元素如果不存在再添加 if num not in new_list: # 运算符in 判断元素是否存在于列表中如果存在则返回True不存在返回False。not 取反。 new_list.append(num) print(去重后的列表,new_list)简化2# 案例2. 合并两个列表中的元素并对合并的结果进行去重处理去除列表中的重复元素。 # 定义列表 num_list1 [19, 23, 54, 64, 875, 20, 109, 232, 123, 54] num_list2 [55, 80, 72, 35, 60, 123, 54, 29, 91] # 1. 合并列表第三种方式最简单 num_list num_list1 num_list2 # 简化 print(合并后的原始列表,num_list) # 2. 去重 new_list [] # 去重后的列表 for num in num_list: # 判断new_list中是否存在num元素如果不存在再添加 if num not in new_list: # 运算符in 判断元素是否存在于列表中如果存在则返回True不存在返回False。not 取反。 new_list.append(num) print(去重后的列表,new_list)小结1、如何快速合并两个列表使用运算符直接合并使用*进行解包操作解包指将列表这一类数据容器解开成独立的元素2、如何判断一个元素是否存在于列表之中可以使用 in 运算符语法为 元素 in 列表返回结果为布尔值True表示存在False表示不存在案例三推导式# 1. 生成1-20的平方列表 -----range(1, 21) # 方式一传统方式 num_list [] for i in range(1, 21): num_list.append(i**2) print(num_list) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400] # 方式二列表推导式 --- 就是按照一定的规则快速生成一个列表的方法 --- 语法格式1[要插入的值 for i in 序列/列表] num_list2 [i**2 for i in range(1, 21)] print(num_list2) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400] # 2. 从如下数字列表中提取所有偶数并计算其平方组成一个新的列表。 # 列表推导式 --- 语法格式2[要插入的值 for i in 序列/列表 if 条件] num_list [19, 23, 54, 64, 87, 20, 109, 232, 123, 43, 26, 55, 72] # 判断偶数 --- num % 2 0 # 思考由一个列表要组成另一个列表考虑推导式 new_list [i**2 for i in num_list if i % 2 0] print(new_list) # [2916, 4096, 400, 53824, 676, 5184]小结列表推导式含义列表推导式就是按照一定规则快速生成一个列表的方法格式1列表名称[要插入列表的数据 for i in 列表]格式2列表名称[要插入列表的数据 for i in 列表 if 条件]要插入列表的数据可以是一个变量也可以是一个表达式。练习# 练习1. 将如下多个列表合并为一个列表并去重重复元素排好序升序后输出到控制台。 # 1. 定义三个列表 list1 [M, A, C, E, F, G, H, L, N, I, J, K, O] list2 [X, Z, T, Y, D, E, F, G] list3 [W, A, S, D] # 合并 sum_list list1 list2 list3 print(合并后的列表, sum_list) # 去重 new_list [ ] for item in sum_list: if item not in new_list: new_list.append(item) print(去重后的列表, new_list) # 排序 new_list.sort() print(排序后的列表, new_list) 合并后的列表 [M, A, C, E, F, G, H, L, N, I, J, K, O, X, Z, T, Y, D, E, F, G, W, A, S, D] 去重后的列表 [M, A, C, E, F, G, H, L, N, I, J, K, O, X, Z, T, Y, D, W, S] 排序后的列表 [A, C, D, E, F, G, H, I, J, K, L, M, N, O, S, T, W, X, Y, Z] # 练习2. 将如下列表中能被 3 或 5 整除的元素提出来并获取这些数字对应的平方组成一个新的列表。 # 原始列表 list1 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] new_list [i ** 2 for i in list1 if i % 3 0 or i % 5 0] print(new_list) # [9, 25, 36, 81, 100, 144, 225, 324, 400, 441, 576, 625, 729, 900]# 练习3. 将如下列表中的正数提取出来封装为一个新的列表。 # 原始列表 list1 [11, 2, 31, 4, -5, 15, 17, 28, 49, 10, -11, 16, 54, -14, 36, -16, 87, -39] new_list [i for i in list1 if i0] print(new_list) # [11, 2, 31, 4, 15, 17, 28, 49, 10, 16, 54, 36, 87]声明本篇学习笔记参考黑马程序员相关课程部分素材来源于网络公开资料及本人补充文中为个人整理复盘仅供学习交流使用。

相关新闻

CubeFS 命令行工具 cfs-cli 使用指南:编译、配置与集群管理命令全解析

CubeFS 命令行工具 cfs-cli 使用指南:编译、配置与集群管理命令全解析

存储分布式文件系统对象存储云原生 【免费下载链接】cubefs cloud-native distributed storage 项目地址: https://gitcode.com/gh_mirrors/cu/cubefs 点击查看 免费下载 导读 cfs-cli 是 CubeFS 提供的命令行管理工具,用于对集群进行日常运维与管理&a…

2026/10/5 13:04:59 阅读更多 →
Mooncake Store 的 OSS 对象存储卸载(Offload)部署指南:架构、配置与故障排查

Mooncake Store 的 OSS 对象存储卸载(Offload)部署指南:架构、配置与故障排查

人工智能大模型模型推理服务后端 【免费下载链接】Mooncake Mooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI. 项目地址: https://gitcode.com/gh_mirrors/mo/Mooncake 点击查看 免费下载 导读 本文介绍 Mooncake 项目…

2026/10/5 13:04:59 阅读更多 →
LiveKit 拆解 Safari 下 AV1 黑屏的兜底链路

LiveKit 拆解 Safari 下 AV1 黑屏的兜底链路

LiveKit 拆解 Safari 下 AV1 黑屏的兜底链路 【免费下载链接】livekit End-to-end realtime stack for connecting humans and AI 项目地址: https://gitcode.com/GitHub_Trending/li/livekit 用 Safari 进会,远端画面是一块黑屏,或者自己的摄像头…

2026/10/5 13:04:59 阅读更多 →

最新新闻

Kimi K2 驱动 AI 文档阅读助手实战:零代码用 Claude Code 一天打造全栈文档管理网站

Kimi K2 驱动 AI 文档阅读助手实战:零代码用 Claude Code 一天打造全栈文档管理网站

文档教程知识库人工智能 【免费下载链接】ai-guide 程序员鱼皮的 AI 资源大全 Vibe Coding 零基础教程,分享 OpenClaw 保姆级教程、大模型玩法(DeepSeek / GPT / Gemini / Claude / GLM)、最新 AI 资讯、Prompt 提示词大全、AI 知识百科&…

2026/10/5 14:21:41 阅读更多 →
SAP物料账报错ML4HMASTER113与ML4HRUN053根因解析

SAP物料账报错ML4HMASTER113与ML4HRUN053根因解析

1. 项目概述:这不是一次简单的报错修复,而是一次对SAP物料账(Material Ledger)底层逻辑的深度体检“SAP-ML章<<<<第一节:物料账报错处理>>&#x…

2026/10/5 14:21:40 阅读更多 →
本科毕设遥感图像分类实战:72小时落地深度学习方案

本科毕设遥感图像分类实战:72小时落地深度学习方案

1. 这不是“速成课”,而是毕设场景下真正能落地的遥感图像分类实战路径 我带过三届毕业设计,每年四月总有一批学生抱着“毕设有救了”的心态冲进实验室,手里攥着刚下载的Sentinel-2数据、GitHub上抄来的PyTorch代码、还有导师一句“你试试用深…

2026/10/5 14:21:40 阅读更多 →
C++ STL:list 容器详解与模拟实现——从双向链表到反向迭代器

C++ STL:list 容器详解与模拟实现——从双向链表到反向迭代器

C STL:list 容器详解与模拟实现——从双向链表到反向迭代器 文章目录C STL:list 容器详解与模拟实现——从双向链表到反向迭代器1 list 的基本概念2 list 的构造2.1 构造空 list2.2 构造 n 个相同元素2.3 拷贝构造2.4 使用迭代器区间构造3 list 的迭代器…

2026/10/5 14:21:40 阅读更多 →
深入理解Spring Data:从JDBC样板代码到Repository自动化原理

深入理解Spring Data:从JDBC样板代码到Repository自动化原理

过去几年里,我带过不少刚入行的Java开发,大多数人第一次听到“Spring Data”这个词时,第一反应都是:这是个ORM框架吧?是不是跟MyBatis差不多?等真正接手项目,看到Service层里一个个接口注入、方…

2026/10/5 14:20:39 阅读更多 →
PHP短视频源码开发:JSON数据源统一接入与API适配层设计实践

PHP短视频源码开发:JSON数据源统一接入与API适配层设计实践

在做PHP开源短视频源码的时候,我遇到的第一件事不是播放器怎么接,也不是会员体系怎么做,而是第三方数据源的JSON格式乱到让人怀疑人生。短剧接口返回的字段和TVBox仓库对不上,TVBox仓库的结构和zyplayer视频源又不是一回事&#x…

2026/10/5 14:20:39 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →