当前位置: 首页 > article >正文

python基础学习笔记第五章

一、数据容器入门1. 定义一种可容纳多份数据的Python数据类型每份数据为元素元素可以是任意类型字符串、数字、布尔等。2. 分类按特性划分依据是否支持重复元素、是否可修改、是否有序分为5类list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)。3. 核心优势替代多个独立变量实现批量存储/使用数据简洁高效。二、列表list- 可修改、有序、可重复1. 定义# 普通定义 name_list [itheima, itcast, python] # 多类型嵌套 my_list [itheima, 666, True, [1,2,3]] # 空列表 empty_list [] empty_list2 list()2. 下标索引正向从0开始递增反向从-1开始递减嵌套列表多层下标访问my_list [[1,2,3], [4,5,6]] print(my_list[0]) # 取内层第一个列表[1,2,3] print(my_list[0][0]) # 取内层第一个列表的第一个元素13. 常用方法方法作用代码示例append(元素)尾部追加元素my_list.append(7)extend(容器)尾部追加另一个容器的所有元素my_list.extend([8,9])insert(下标, 元素)指定下标插入元素my_list.insert(1, test)del 列表[下标]删除指定下标元素del my_list[0]pop(下标)删除指定下标元素并返回该元素val my_list.pop(0)remove(元素)删除第一个匹配的元素my_list.remove(666)clear()清空列表my_list.clear()count(元素)统计元素出现次数num my_list.count(1)index(元素)查找元素下标找不到报错idx my_list.index(itheima)len(列表)统计元素个数l len(my_list)4. 遍历while循环my_list [1,2,3,4,5] index 0 while index len(my_list): print(my_list[index]) index 1for循环my_list [1,2,3,4,5] for i in my_list: print(i)5. 特点可容纳多个元素上限支持多类型元素、嵌套有序有下标、可重复可修改增/删/改元素三、元组tuple- 不可修改、有序、可重复1. 定义注意单个元素必须加逗号否则不是元组类型# 普通定义 t1 (1, Hello, True) # 单个元素 t2 (Hello,) # 嵌套元组 t3 ((1,2,3), (4,5,6)) # 空元组 t4 () t5 tuple()2. 常用方法仅查询/统计无修改方法t (1,2,hello,3,4,hello) print(t.index(hello)) # 查找下标2 print(t.count(hello)) # 统计次数2 print(len(t)) # 统计个数6 print(t[2]) # 下标取值hello3. 特殊修改规则元组本身不可修改但内部的列表可以修改不可替换列表t (1,2,[itheima,itcast]) t[2][1] best # 合法修改列表内元素结果(1,2,[itheima,best]) # t[2] [1,2,3] # 非法替换列表报错4. 遍历同列表while/for循环均可t (1,2,3,4,5) # for循环推荐 for i in t: print(i)5. 特点与列表几乎一致唯一区别不可修改支持多类型、嵌套、有序、可重复适合存储不希望被篡改的数据四、字符串str- 不可修改、有序、字符专属容器1. 本质字符的有序容器每个字符对应下标仅能存储字符串类型。2. 下标索引同列表/元组正向0开始反向-1开始s itheima print(s[0]) # i print(s[-1]) # a3. 常用方法方法作用代码示例index(子串)查找子串下标找不到报错s.index(the)replace(子串1, 子串2)替换所有子串1为子串2返回新字符串new_s s.replace(i, I)split(分隔符)按分隔符分割返回列表lst s.split(e)strip()去除首尾空格/换行符new_s s.strip()strip(字符)去除首尾指定字符按单个字符匹配new_s 12itheima21.strip(12)count(子串)统计子串出现次数num s.count(i)len(字符串)统计字符个数中文/数字/符号均算1个l len(s)4. 遍历同列表/元组while/for循环均可s 黑马程序员 for c in s: print(c)5. 特点专属字符存储仅支持字符串类型有序、可重复、不可修改长度无限制取决于内存五、序列切片 - 列表/元组/字符串通用1. 序列定义内容连续、有序、支持下标索引的容器列表、元组、字符串。2. 切片语法序列[起始下标:结束下标:步长]起始下标留空从头开始结束下标留空截取到结尾不含结束下标本身步长1逐个取N跳过N-1个负数倒序取3. 示例# 列表切片 lst [1,2,3,4,5] print(lst[1:4]) # [2,3,4]1到3步长1 print(lst[::2]) # [1,3,5]从头到尾步长2 print(lst[3:1:-1]) # [4,3]倒序3到2 # 字符串切片倒序常用 s 12345 print(s[::-1]) # 54321完全倒序 # 元组切片 t (1,2,3,4,5) print(t[:1:-2]) # (5,3)倒序尾到2步长2六、集合set- 可修改、无序、不可重复自动去重1. 定义注意空集合必须用set(){}是空字典# 普通定义自动去重 s {黑马程序员, 传智播客, 黑马程序员} # 空集合 empty_s set()2. 常用方法无下标不可用while遍历方法作用代码示例add(元素)添加元素重复则忽略s.add(itheima)remove(元素)删除元素不存在报错s.remove(传智播客)pop()随机删除一个元素并返回val s.pop()clear()清空集合s.clear()difference(集合2)取差集本集合有集合2无返回新集合s3 s1.difference(s2)difference_update(集合2)本集合删除与集合2的交集修改原集合s1.difference_update(s2)union(集合2)取并集返回新集合s3 s1.union(s2)len(集合)统计元素个数l len(s)3. 遍历仅支持for循环无序遍历结果不固定s {1,2,3,4,5} for i in s: print(i)4. 特点可容纳多类型元素、可修改无序无下标、不可重复自动去重适合去重、交集/并集/差集计算七、字典dict- 可修改、无序、键值对形式1. 定义用{}存储键值对Key: ValueKey不可重复重复会覆盖Key不可为字典。# 普通定义 stu_score {王力鸿:99, 周杰轮:88, 林俊节:77} # 嵌套字典值为字典 stu_info { 王力鸿: {语文:77, 数学:66}, 周杰轮: {语文:88, 数学:86} } # 空字典 empty_dict {} empty_dict2 dict()2. 取值通过Key取值而非下标print(stu_score[王力鸿]) # 99 print(stu_info[王力鸿][语文]) # 773. 常用方法方法作用代码示例字典[Key] Value新增/更新键值对Key不存在新增存在更新stu_score[张学油]66pop(Key)删除键值对返回Valueval stu_score.pop(王力鸿)clear()清空字典stu_score.clear()keys()获取所有Key返回可迭代对象keys stu_score.keys()len(字典)统计键值对个数l len(stu_score)4. 遍历仅支持for循环默认遍历Key可通过Key取Valuestu_score {王力鸿:99, 周杰轮:88, 林俊节:77} # 遍历Key for key in stu_score: print(f学生{key}分数{stu_score[key]}) # 先取所有Key再遍历等价上式 for key in stu_score.keys(): print(f学生{key}分数{stu_score[key]})5. 特点存储键值对通过Key快速检索ValueKey唯一、不可为字典Value可任意类型/嵌套无序无下标、可修改适合存储有映射关系的数据如姓名-成绩、ID-信息八、数据容器通用操作所有5类容器均支持以下操作部分有专属限制如集合/字典无下标。1. 通用统计lst [1,2,3,4,5] s itheima print(len(lst)) # 统计元素个数5 print(max(s)) # 取最大元素t字符串按ASCII码比较 print(min(lst)) # 取最小元素12. 通用类型转换lst [1,2,3] t (4,5,6) s 789 se {1,2,3} # 转列表 print(list(t)) # [4,5,6] # 转元组 print(tuple(lst)) # (1,2,3) # 转字符串 print(str(lst)) # [1,2,3] # 转集合自动去重 print(set(lst)) # {1,2,3}3. 通用排序# sorted(容器, reverseTrue/False)返回排好序的列表 lst [5,2,9,1] s bacfe print(sorted(lst)) # 升序[1,2,5,9] print(sorted(lst, reverseTrue)) # 降序[9,5,2,1] print(sorted(s)) # 字符串按ASCII排序[a,b,c,e,f]4. 通用遍历支持for循环所有容器均支持支持while循环仅列表、元组、字符串有下标集合、字典不支持无下标九、5类数据容器核心对比特性列表list元组tuple字符串str集合set字典dict元素类型任意任意仅字符任意Key除字典外任意Value任意下标索引支持支持支持不支持不支持重复元素支持支持支持不支持Key不重复Value可重复可修改性支持不支持不支持支持支持数据有序是是是否否核心使用场景可修改、可重复的批量数据不可修改、可重复的批量数据字符序列存储数据去重、集合运算键值对映射快速检索十、经典练习代码1. 列表筛选偶数whilefor双实现# 原列表 nums [1,2,3,4,5,6,7,8,9,10] even_lst [] # while循环实现 index 0 while index len(nums): if nums[index] % 2 0: even_lst.append(nums[index]) index 1 print(fwhile筛选偶数{even_lst}) # for循环实现 even_lst2 [] for i in nums: if i % 2 0: even_lst2.append(i) print(ffor筛选偶数{even_lst2})2. 集合去重my_list [黑马程序员, 传智播客, 黑马程序员, itcast, itcast] my_set set() # 遍历列表添加到集合自动去重 for i in my_list: my_set.add(i) print(f去重后集合{my_set})3. 字典升职加薪# 员工信息字典 staff { 王力鸿: {部门:科技部, 工资:3000, 级别:1}, 周杰轮: {部门:市场部, 工资:5000, 级别:2}, 张学油: {部门:科技部, 工资:4000, 级别:1} } # 遍历所有员工级别1则升职加薪 for name in staff: if staff[name][级别] 1: staff[name][级别] 1 staff[name][工资] 1000 print(f加薪后信息{staff})4. 序列切片取指定内容# 原字符串万过薪月员序程马黑来nohtyP学 s 万过薪月员序程马黑来nohtyP学 # 步骤1倒序字符串 → 学Python来黑马程序员月薪过万 s_rev s[::-1] # 步骤2切片取黑马程序员 result s_rev[9:14] # 切片不包含最后一个下标 print(f结果{result}) # 黑马程序员

相关文章:

python基础学习笔记第五章

一、数据容器入门1. 定义一种可容纳多份数据的Python数据类型,每份数据为元素,元素可以是任意类型(字符串、数字、布尔等)。2. 分类(按特性划分)依据是否支持重复元素、是否可修改、是否有序分为5类&#x…...

HPatches数据集实战:从特征点检测到匹配精度的全链路评估

1. HPatches数据集入门指南 第一次接触HPatches数据集时,我和大多数开发者一样有点懵。这个在特征点检测领域赫赫有名的基准测试集,到底该怎么用才能发挥最大价值?经过几个项目的实战,我总结出了一套小白也能快速上手的方法。 HPa…...

MATLAB R2023b安装包下载及安装步骤说明

MATLAB安装教程 1.打开下载好的MATLAB2023b文件包,解压Windouw版本的MATLAB里面包含了三个文件,如图所示: 2.选择上述文件中的R2023b_-Windows.iso文件,右键点击选择装载,如下图所示: 装载好后的文件如下…...

Python爬虫进阶:自动化采集语音训练数据实战

Python爬虫进阶:自动化采集语音训练数据实战 1. 引言 语音合成技术的快速发展对高质量训练数据提出了巨大需求。以Qwen3-TTS为例,仅需3秒参考音频就能实现高精度音色克隆,但前提是需要大量优质的语音-文本配对数据。传统的手工采集方式效率…...

AutoDock Vina硼原子兼容性实战指南:解决1.1.2+版本特殊原子对接问题

AutoDock Vina硼原子兼容性实战指南:解决1.1.2版本特殊原子对接问题 【免费下载链接】AutoDock-Vina AutoDock Vina 项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina 诊断硼原子对接失败问题 作为一名计算药物学家,我最近在处理含硼…...

Gemma-3-12b-it图文问答典型错误分析:光照/遮挡/低分辨率应对策略

Gemma-3-12b-it图文问答典型错误分析:光照/遮挡/低分辨率应对策略 1. 工具概述 Gemma-3-12b-it是一款基于Google Gemma-3-12b-it大模型开发的多模态交互工具,专为本地图文问答场景优化。该工具通过全维度CUDA性能优化,支持图片上传与文本提…...

当AI学会“鉴谎”:企业舆情处置从被动救火到主动防御

最近跟几个做品牌公关的朋友聊天,发现大家都有一个共同的焦虑:网络上的信息传播太快了,一条负面视频、一篇恶意差评,可能一夜之间就让企业多年积累的声誉受到重创。更棘手的是,传统处置方式要么慢如蜗牛,要…...

快速体验SenseVoice语音识别:带量化ONNX模型一键启动服务

快速体验SenseVoice语音识别:带量化ONNX模型一键启动服务 1. 语音识别服务简介 SenseVoice是一款基于ONNX量化的多语言语音识别服务,特别适合需要快速部署和高效推理的开发场景。这个经过优化的模型能够在保持高精度的同时,显著降低资源消耗…...

Windows 基本操作快捷键

Windows 基本操作快捷键1. Windows 7 专业版2. Keyboard shortcuts in WindowsReferences1. Windows 7 专业版 2. Keyboard shortcuts in Windows Win 键是键盘上图标像窗户键。 快速切换窗口 Alt Tab 快速移到网页末 Ctrl End 快速移到网页首 Ctrl Home 锁屏 Win …...

100激光只是起步,易加增材把金属3D打印机做到3米级,全球最大!

易加增材:没有最大,只有更大。EP-M3050金属3D打印设备当前,金属3D打印正加快向大尺寸、一体化、高精度、高效率方向发展,航空航天、能源装备等领域对超大尺寸、多激光金属增材制造设备的需求持续上升。在此背景下,易加…...

亚马逊A+页面Shoppable系列实战:如何用交互设计提升30%转化率(附配置步骤)

亚马逊A页面Shoppable系列实战:如何用交互设计提升30%转化率(附配置步骤) 在亚马逊这个竞争激烈的电商平台上,产品页面的每一个像素都可能决定销售的成败。A页面作为品牌展示的重要阵地,已经从单纯的"电子说明书&…...

从“一通电就响”到“编程奏乐”:深入解析有源与无源蜂鸣器的核心差异与选型实战

1. 蜂鸣器基础:从"滴滴声"到"交响乐"的硬件选择 第一次接触蜂鸣器是在大学电子设计课上,当时我用单片机控制一个黑色小元件发出"滴滴"声,兴奋得像是发现了新大陆。后来才知道,那个黑色小元件就是最…...

Web 表白页面性能优化指南:Awesome-Love-Code 最佳实践

Web 表白页面性能优化指南:Awesome-Love-Code 最佳实践 【免费下载链接】Awesome-Love-Code 表白代码收藏馆~谁说程序猿不懂浪漫❤️ 项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-Love-Code 在数字化时代,表白页面已成为程序员表达爱意…...

coze-loop代码优化器Mac M2本地部署:5分钟搭建你的AI编程助手

coze-loop代码优化器Mac M2本地部署:5分钟搭建你的AI编程助手 1. 为什么选择本地部署的AI代码优化器? 在软件开发过程中,我们经常遇到这样的困境:一段功能正常的代码,却存在性能瓶颈、可读性差或潜在风险。传统解决方…...

EVA-01效果展示:Qwen2.5-VL-7B对视频关键帧摘要+动作识别+事件检测

EVA-01效果展示:Qwen2.5-VL-7B对视频关键帧摘要动作识别事件检测 1. 引言:当视觉AI披上机甲战袍 想象一下,你有一段长达十分钟的监控视频,需要快速找出其中有人摔倒的片段;或者你手头有一堆产品演示视频,…...

Java框架开发短剧漫剧系统:后台管理与接口开发

本次开发采用Java主流框架组合,兼顾开发效率、可维护性与扩展性,核心技术选型:后端 SpringBoot 2.7.x(简化配置、快速开发) Spring Security(权限管控) MyBatis-Plus(数据操作&#…...

利用快马平台快速生成AppLite应用原型:十分钟搭建待办事项管理工具

最近在尝试快速验证一个待办事项管理工具的想法,不想在环境搭建和基础代码上耗费太多时间。正好了解到InsCode(快马)平台支持通过描述直接生成项目代码,于是决定用它结合AppLite这个轻量级框架来试试水。整个过程比预想的要顺畅,从输入想法到…...

RexUniNLU保姆级教学:从Jupyter访问到Schema调试全链路

RexUniNLU保姆级教学:从Jupyter访问到Schema调试全链路 你是不是遇到过这样的问题:拿到一段文本,想快速找出里面的人名、地名、公司名,但不想花时间标注数据训练模型?或者想给一堆评论自动分类,但又不确定…...

FaceForensics++数据集高效下载与配置全攻略

1. FaceForensics数据集简介与下载准备 FaceForensics(简称FF)是目前Deepfake检测领域最权威的基准数据集之一,包含1000多段原始视频和四种主流换脸技术生成的篡改视频。我第一次接触这个数据集时,光是下载就花了整整三天时间&…...

【高精度气象】从“被动响应”到“主动预警”:电网综合气象灾害风险分析平台如何深度融入电网运行?

当覆冰监测装置提前72小时发出预警,当调度系统根据风速预测自动调整新能源出力——电网终于学会了在灾害来临前“抢跑”。2026年1月19日,江苏宿迁。500千伏泗澜线舞动在线监测装置自动触发预警。运维人员赶到现场时,导线刚刚开始轻微舞动&…...

RT-Thread PWM开发避坑指南:从配置到调试的全流程解析

RT-Thread PWM开发避坑指南:从配置到调试的全流程解析 在嵌入式开发中,PWM(脉冲宽度调制)技术因其精准控制能力而广泛应用于电机驱动、LED调光、电源管理等场景。RT-Thread作为一款优秀的实时操作系统,为PWM开发提供了…...

2.5.第十六届蓝桥杯大赛软件赛省赛Java 大学 B 组(上)

1.逃离高塔问题描述:小蓝一觉醒来,小蓝被困在一座高耸的塔中。这座塔共有 20252025 层,每一层都刻有一个数字的立方值,从底层的 1313、2323、3333、⋯⋯,一直到顶层的 2025320253,层层叠叠,直入…...

RAG与GraphRAG:提升大模型准确性的关键技术,小白也能学会收藏!

本文介绍了RAG和GraphRAG技术,旨在增强大语言模型的准确性和可靠性。RAG通过检索外部知识库来支持生成回答,而GraphRAG则引入知识图谱进行深度信息挖掘。文章详细阐述了两种技术的架构、挑战和对比,并结合实际案例展示了在元数据检索场景中的…...

CEO必会之财务基础

CEO必会之财务基础 CEO必会之财务基础:三张表背后的公司真相 课程导语 话术升级: 各位好,今天我们来聊一个很多CEO最头疼、但也最不能回避的课题:财务基础。 很多技术出身、产品出身的CEO,一看到数字就头大&#x…...

告别繁琐设置!用这个一键切换脚本,Win10微软拼音全拼/双拼自由切换

微软拼音输入法高效切换方案:全拼与双拼的自动化实践 在Windows 10系统中,微软拼音输入法作为默认中文输入工具,其全拼和双拼模式各有优势。全拼适合大多数用户,输入准确但按键次数较多;双拼则通过将声母和韵母映射到单…...

SiamMask核心原理深度解析:孪生网络如何统一跟踪与分割

SiamMask核心原理深度解析:孪生网络如何统一跟踪与分割 【免费下载链接】SiamMask [CVPR2019] Fast Online Object Tracking and Segmentation: A Unifying Approach 项目地址: https://gitcode.com/gh_mirrors/si/SiamMask SiamMask是一个创新的视觉目标跟踪…...

为什么开发者都在使用Nord tmux?探索其设计哲学

为什么开发者都在使用Nord tmux?探索其设计哲学 【免费下载链接】tmux 项目地址: https://gitcode.com/gh_mirrors/tmux10/tmux Nord tmux是一款基于北极蓝调色彩的优雅tmux主题,专为流畅清晰的工作流程设计。作为GitHub加速计划的一部分&#x…...

【轨物方案】数字化转型的“破局者”:智能开关柜如何实现70%的运维效率跨越

在新型电力系统建设背景下,传统电力运维模式正面临严峻的技术瓶颈。长期以来,行业普遍处于“被动检修”状态:开关柜内部如同一个“状态黑箱”,由于缺乏实时数据支撑,运维人员无法预知触头升温或机械磨损,往…...

3大核心功能让MachOView成为macOS二进制分析的高效深度工具

3大核心功能让MachOView成为macOS二进制分析的高效深度工具 【免费下载链接】MachOView MachOView fork 项目地址: https://gitcode.com/gh_mirrors/ma/MachOView 在macOS和iOS开发过程中,开发者常常面临诸多棘手问题。如何快速定位二进制文件异常&#xff1…...

技术前沿|AIGC溯源技术全景与应用实践

1. AIGC溯源技术全景:从模型到数据的追踪体系 想象一下,你在画廊看到一幅惊艳的画作,却无法判断它出自人类画家还是AI之手——这正是AIGC溯源技术要解决的核心问题。AIGC(AI生成内容)溯源技术就像数字世界的"指纹…...