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

Python中str、list、tuple、dict、set 五大内置数据结构详解

初学 Python,最先要攻克的就是内置数据结构!字符串、列表、元组、字典、集合贯穿我们几乎所有代码。很多人只会基础增删改查,遇到场景选型就一脸迷茫:什么时候用列表?什么时候选元组?集合去重原理是什么?字典底层有什么特性?

本文用通俗语言 + 实战案例,系统梳理 5 大核心数据结构,新手友好,建议收藏备查!

一、字符串 str

1.1 基本特性

(1)定义:使用""''""""""包裹文本

(2)不可变序列:创建之后不能直接修改内部字符,重新赋值本质是生成新字符串

(3)支持下标索引、切片操作

1.2 常用操作

s = "Hello Python" # 切片 print(s[0:5]) # Hello # 常用方法 print(s.split()) # 分割字符串 print(s.replace("Python","World")) # 替换 print(s.strip()) # 去除首尾空白 print(s.upper(),s.lower()) # 大小写转换

1.3 使用场景

存储文本信息(用户名、日志、文件路径)、文本解析。

注意:不要频繁循环拼接字符串s = s + "xxx",大量拼接推荐"".join()提升效率。

二、列表 list

2.1 基本特性

(1)标识:[],有序可变序列

(2)允许元素重复、支持不同类型元素共存

(3)可变:支持增、删、改、查

2.2 常用操作

lst = [10,20,30] lst.append(40) # 末尾追加 lst.insert(1,15) # 指定位置插入 lst.remove(20) # 删除指定元素 lst.pop() # 删除末尾并返回元素 lst[0] = 99 # 修改元素 print(lst[1:]) # 切片

2.3 使用场景

有序数据容器,最常用!存放有序数据、需要随时新增删除元素时优先选 list。

短板:根据值查找元素速度慢,海量数据查询不要只用列表。

三、元组 tuple

3.1 基本特性

(1)标识:()有序不可变序列

(2)一旦创建,不能增删修改元素

(3)如果元组内嵌套列表,列表里面的数据可以修改(元组约束的是引用地址)

t = (1,2,[3,4]) t[2].append(5) # 合法运行!

3.2 使用场景

(1)数据不允许被修改,起到数据保护作用(函数返回多个值本质就是元组)

(2)可作为字典的 key(列表不行)

(3)相比列表占用内存更小

小技巧:只包含一个元素的元组必须写逗号t=(10,)t=(10)只是数字。

四、字典 dict

4.1 基本特性

(1)标识:{key:value}键值对结构

(2)Python3.7 + 字典默认有序

(3)key 要求:必须是不可变类型(str、int、tuple),key 唯一,重复 key 会覆盖旧值

(4)查询速度极快,底层哈希表实现

4.2 常用操作

d = {"name":"小明","age":18} print(d["name"]) print(d.get("gender","未知")) # get避免键不存在报错 d["age"] = 19 # 修改/新增 print(d.keys()) # 获取所有键 print(d.values()) # 获取所有值 print(d.items()) # 获取键值对

4.3 使用场景

需要根据关键字快速查找数据,适合存储具备映射关系的数据,比如用户信息、配置参数。

五、集合 set

5.1 基本特性

(1)标识:{}无序、元素唯一

(2)可变类型;元素同样要求不可变

(3)核心能力:自动去重、集合运算(交集、并集、差集)

空集合不能写{}{}代表空字典,空集合必须写set()

5.2 常用操作

s = {1,2,3,1} print(s) # {1,2,3} 自动去重 a = {1,2,3} b = {3,4,5} print(a & b) # 交集 {3} print(a | b) # 并集 {1,2,3,4,5} print(a - b) # 差集 {1,2}

5.3 使用场景

(1)列表快速去重lst = list(set(lst))

(2)判断两组数据重合、差异对比

结语

以上5种数据结构是Python一切项目的基石,爬虫、数据分析、后端开发全部离不开。光看懂不够,建议大家动手敲一遍示例代码,尝试不同结构互相转换(list转 set、dict转list等),很快就能熟练掌握。

后续我会继续更新数据结构进阶:推导式、深浅拷贝、collections高级容器!

http://www.cnnetsun.cn/news/3609856.html

相关文章:

  • 【雨云】12 元/月打造专属内网穿透:独享 IP、任意端口!
  • 【Java实战】Java加解密算法全解析:分类、场景与国密算法实战总结
  • 2026年做跨境电商,很多人不知道这3个隐形关联流量入口,正被头部大卖悄悄吃透(实战复盘)
  • 抖音黑科技兵马俑总站源头简博科技 | 抖音锚点不合规挂载新规今日生效,短视频引流直播间迈入三端全链路监管时代
  • Kimi K3登顶前端开发榜,月之暗面却遇“算力荒”,还计划最快6个月港股上市!
  • 工业一体机Linux系统部署实战:从系统安装到工业通信环境搭建
  • Claude Code被曝重大隐患,揭开了算法安全的帷幕
  • Ubuntu开发环境搭建(Python-Go-Rust)
  • Google 连发三个新 Gemini 模型,官方宣传与网友差评落差大,Gemini 4 能救场吗?
  • 蓝速 AI 双屏翻译机国际版:全球口音精准适配与商务实效展示
  • 为什么你的AI配乐总被平台降权?——基于127万条审核日志的音频频谱分析报告(含可复用检测清单)
  • python数据可视化技巧的100个练习 -- 38. 交通流量数据可视化的网络流图
  • 下一代企业智能基座:为什么说「LLM 规划 + MCP 调度 + Agent 执行」= 未来标配?一、引言:从工具到系统的智能化跃迁在企业数字化转型的深水区,传统 IT 架构正面临决策滞后、资源割
  • 2026有实力的全球EMBA中立测评,民营企业家择校参考
  • Python企业内部数据治理流程自动化落地的构建路径【教学】
  • Spring Security掌握内容速忆(适用于初学者)
  • 华为鸿蒙免费铃声软件—小羊免费铃声
  • 基于人脸识别的无人值守自习室预约系统设计与实现
  • 高斯泼溅技术-从入门到精通
  • DeepSeek专家模式突破对话上限技巧,无缝衔接新对话!
  • 非结构化数据满天飞,90%的敏感数据藏在文档堆里,怎么让AI真正分得清?
  • 大模型分布式训练与显存优化核心技术解析
  • 因算力紧缺,月之暗面Kimi宣布暂停C端新用户订阅;ASML回应向全球员工发2万欧元股权激励;Qwen3.8-Max预览版上线 | 极客头条
  • 2026年英文论文翻译工具横评:5款主流方案实测对比与效率选型指南
  • UVM验证平台的死亡陷阱:从入门到放弃的那些坑
  • FreeRDP曝高危堆缓冲区溢出漏洞:wfreerdp客户端遭弃用,远程代码执行风险急剧上升
  • 【Springboot毕设全套源码+文档】基于JavaWeb的图书馆管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 下拉刷新库:通用下拉刷新与上拉加载组件(243)
  • 弹窗库:Toast、Loading、ActionSheet的统一封装(244)
  • C 语言 struct 内存对齐与面向对象:从 padding 到函数指针接口