从入门到精通:列表、元组、字典
Python 中的列表、元组、字典是日常开发中最常用的数据结构掌握它们的核心操作是 Python 入门的关键。本文将从基础定义、增删改查、遍历操作到实战案例全方位讲解这三种数据结构的使用方法和核心区别。一、列表 (List)灵活的有序可变序列列表是 Python 中最基础也最常用的数据结构使用[]定义可存储不同类型的数据整数、浮点数、布尔值、字符串等支持增删改查等灵活操作。1. 列表的基础定义与访问# 1.定义列表 list1 [10,20.3,True,abc] # 可存储不同类型元素 list2 [] # 空列表 # 2.打印列表 print(flist1:{list1}) # 输出list1:[10, 20.3, True, abc] print(flist2:{list2}) # 输出list2:[] # 3.列表切片访问 print(list1[1:]) # 输出[20.3, True, abc]从索引1开始到末尾2. 列表的遍历方式列表支持两种主流遍历方式for 循环直接遍历、while 循环索引遍历# for循环遍历推荐 for value in list1: print(value,end \t) # 输出10 20.3 True abc print() # while循环索引遍历 i 0 while i len(list1): print(list1[i],end \t) # 输出10 20.3 True abc i 13. 列表的增删改操作1增加元素append()在列表末尾添加元素若添加列表则作为单个元素extend()在列表末尾批量添加元素拆分列表为单个元素insert()在指定索引位置插入元素# append添加单个元素/列表整体 list1.append(张三) list3 [a,b,c] list1.append(list3) # extend批量添加元素 list1.extend(张三) # 拆分字符串为单个字符 list1.extend(list3) # 拆分列表为单个元素 # insert指定位置插入 list1.insert(1,111) # 在索引1位置插入111 print(flist1:{list1})2查询元素index()查找元素首次出现的索引count()统计元素出现次数in/not in判断元素是否存在print(list1.index(20.3)) # 输出2元素20.3的索引 print(list1.count(10)) # 输出1元素10出现1次 print(10 in list1) # 输出True元素10存在 print(10 not in list1) # 输出False元素10非不存在3删除元素del根据索引删除元素clear()清空列表remove()根据元素值删除首次出现pop()根据索引删除并返回元素list4 [10,20,30,40,50] del list4[2] # 删除索引2的元素30 # list4.clear() # 清空列表注释状态 list4.remove(10) # 删除元素10 list4.pop(2) # 删除索引2的元素40 print(flist4{list4}) # 输出list4[20, 50]4修改元素直接通过索引赋值修改reverse()翻转列表sort()排序默认升序reverseTrue降序list4[1] 100 # 索引1的值改为100 list4.reverse() # 翻转列表 list4.sort(reverseTrue)# 降序排序 print(flist4:{list4}) # 输出list4:[100, 20]4. 列表嵌套与实战案例1列表嵌套遍历列表可嵌套其他列表通过双层循环遍历name_list [[小明,晓红],[小黑,小白],[小刘,小芬]] print(name_list[1][1]) # 输出小白第二个子列表的第二个元素 # 方式1索引遍历 for i in range(len(name_list)): child_list name_list[i] for j in range(len(child_list)): print(child_list[j],end \t) print() # 方式2直接遍历推荐 for child_list in name_list: for name in child_list: print(name,end \t) print()2实战随机分配办公室结合random模块实现随机分配功能import random # 定义3个办公室 class_list [[],[],[]] # 定义7位老师 name_list [1,2,3,4,5,6,7] # 随机分配 for n in name_list: class_id random.randint(0,2) # 随机生成0-2的索引 class_list[class_id].append(n) # 遍历输出结果 for idx, class_info in enumerate(class_list): print(f办公室{idx1}{class_info}) print(-*30)二、元组 (Tuple)不可变的有序序列元组使用()定义核心特点是不可变定义后无法修改元素适合存储固定数据。t1 (10,20,30) # 元组 t2 (10) # 注意单个元素不加逗号会被识别为int类型 t3 (10,) # 正确的单个元素元组定义方式 print(type(t1)) # 输出class tuple print(type(t2)) # 输出class int print(type(t3)) # 输出class tuple列表 vs 元组核心区别特性列表 (List)元组 (Tuple)定义符号[]()可变性可变不可变适用场景动态数据固定数据性能稍弱稍优三、字典 (Dictionary)键值对无序集合字典使用{key:value}定义通过键快速查找值是 Python 中高效的映射型数据结构。1. 字典的增删改查dict1 {杨过:小龙女,小黑:小白} # 增新增键值对 dict1[嘻嘻] 哈哈 # 删删除指定键值对 del dict1[嘻嘻] # 改修改已有键的值 dict1[小黑] 小灰 # 查获取值推荐get方法避免键不存在报错 print(dict1.get(小黑)) # 输出小灰 print(dict1.get(张三,李四)) # 输出李四键不存在时返回默认值 print(dict1.keys()) # 输出dict_keys([杨过, 小黑])所有键 print(dict1.values()) # 输出dict_values([小龙女, 小灰])所有值 print(fdict1{dict1}) # 输出dict1{杨过: 小龙女, 小黑: 小灰}2. 字典的遍历# 方式1遍历键 for key in dict1.keys(): print(f{key}{dict1.get(key)}) # 方式2遍历键值对推荐 for key, value in dict1.items(): print(f{key}{value})四、综合实战筛选幸运数字需求输入一个正整数生成 1 到该数的列表并筛选出能被 6 整除的幸运数字nums [] lucky [] input_num int(input(请输入1个大于0的整数)) for i in range(1, input_num1): nums.append(i) if i % 6 0: lucky.append(i) print(f完整列表{nums}) print(f幸运数字能被6整除{lucky})输入输出示例请输入1个大于0的整数20 完整列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 幸运数字能被6整除[6, 12, 18]

相关新闻

Hunyuan-MT-7B法律场景案例:涉外合同翻译系统部署教程

Hunyuan-MT-7B法律场景案例:涉外合同翻译系统部署教程

Hunyuan-MT-7B法律场景案例:涉外合同翻译系统部署教程 你是不是也遇到过这样的烦恼?公司要签一份海外合同,对方发来几十页的英文文件,自己看个大概还行,但要确保每个法律条款都翻译得精准无误,那可真是头大…

2026/7/5 23:37:53 阅读更多 →
语音识别模型国产信创:SenseVoice-Small ONNX在麒麟/UOS系统验证

语音识别模型国产信创:SenseVoice-Small ONNX在麒麟/UOS系统验证

语音识别模型国产信创:SenseVoice-Small ONNX在麒麟/UOS系统验证 1. 引言:当国产语音识别遇上国产操作系统 想象一下,你正在一台搭载国产麒麟或UOS操作系统的电脑前,需要将一段重要的会议录音快速转成文字。过去,你可…

2026/7/3 6:58:47 阅读更多 →
Zephyr RTOS 中LIFOs(后进先出队列)的介绍

Zephyr RTOS 中LIFOs(后进先出队列)的介绍

目录 概述 1 LIFO 介绍 1.1 核心函数列表 1.2 LIFO 的核心概念 1.3 LIFO 与其他 IPC 机制的对比 2 核心函数详解与使用 2.1 初始化 LIFO 2.2 添加数据项:k_lifo_put() 2.3 获取数据项:k_lifo_get() 3 完整应用示例 3.1 中断与线程通信 3.2…

2026/7/4 7:25:53 阅读更多 →

最新新闻

U-Net变体演进:医学图像分割的核心技术与优化策略

U-Net变体演进:医学图像分割的核心技术与优化策略

1. U-Net变体演进背景与核心价值2015年诞生的U-Net架构已经成为医学图像分割领域的里程碑式工作。其经典的编码器-解码器结构配合跳跃连接的设计,在数据量有限的情况下仍能获得精确的分割结果。但随着应用场景的复杂化和硬件算力的提升,原始U-Net逐渐暴露…

2026/7/5 23:37:08 阅读更多 →
AI大模型实战手册:从Transformer到RAG,核心概念与工程实践详解

AI大模型实战手册:从Transformer到RAG,核心概念与工程实践详解

1. 项目概述:为什么需要一本AI大模型的“词典”?最近几年,AI大模型的热度居高不下,几乎每天都能看到新的模型发布、新的应用落地。但随之而来的,是铺天盖地的技术名词和行业黑话。从“Transformer”到“RAG”&#xff…

2026/7/5 23:33:07 阅读更多 →
ElasticFace:动态边缘惩罚提升深度人脸识别性能

ElasticFace:动态边缘惩罚提升深度人脸识别性能

1. 论文核心内容概览 在深度人脸识别领域,特征提取的质量直接决定了模型的识别性能。传统方法如ArcFace、CosFace等通过引入固定的惩罚边缘(Fixed Penalty Margin)来增强特征的区分度,但这种"一刀切"的方式在面对真实场…

2026/7/5 23:33:07 阅读更多 →
AI模型Web服务安全加固实战:从CSRF/XSS防护到生产部署

AI模型Web服务安全加固实战:从CSRF/XSS防护到生产部署

1. 项目概述:当AI视觉模型遇上Web安全最近在部署一个基于OFA(One-For-All)的图像语义蕴含模型服务时,我遇到了一个非常典型但又容易被忽视的问题:我们往往把绝大部分精力都花在了模型调优、接口性能优化上,…

2026/7/5 23:29:06 阅读更多 →
视频嵌入表示技术:从3D CNN到Transformer的实践指南

视频嵌入表示技术:从3D CNN到Transformer的实践指南

1. 视频嵌入表示生成方案概述视频嵌入表示(Video Embedding)是计算机视觉领域将原始视频数据转化为低维稠密向量的关键技术。不同于传统视频处理直接操作像素数据,嵌入表示通过深度学习模型提取视频的语义特征,形成固定长度的向量…

2026/7/5 23:29:06 阅读更多 →
GPT-4o与Claude 3.5 Sonnet模型选型实战指南

GPT-4o与Claude 3.5 Sonnet模型选型实战指南

该项目标题存在严重事实性错误与误导风险,不符合内容安全与专业规范要求。根据公开、权威、可验证的官方信息渠道(OpenAI官网、主流科技媒体如The Verge、TechCrunch、MIT Technology Review等2024年至今的持续追踪报道),截至目前…

2026/7/5 23:29:06 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻