news 2026/7/3 4:49:56

Python基础数据结构详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python基础数据结构详解

Python基础数据结构详解:从字符串到字典的全面指南

Python作为一门简洁高效的编程语言,其内置的数据结构为日常编程提供了强大的支持。本文将深入探讨Python中最常用的几种基础数据结构:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set),帮助初学者快速掌握它们的定义、使用方法和常见操作。

一、字符串(str):文本处理的基础

1.1 定义与创建

字符串是由零个或多个字符组成的有序字符序列,用于表示文本信息。在Python中,字符串是不可变的数据类型,一旦创建便无法直接修改其中的字符。

创建字符串的三种常用方式:

# 单引号创建str1='Hello, World!'# 双引号创建(支持字符串内包含单引号)str2="It's a beautiful day"# 三引号创建(支持多行字符串)str3='''这是一个 多行字符串 示例'''

1.2 常用函数与操作

字符串支持丰富的操作函数,以下是几个核心方法:

  • 长度获取len()函数返回字符串字符数
text="Python"print(len(text))# 输出:6
  • 大小写转换upper()转大写,lower()转小写
msg="Hello Python"print(msg.upper())# 输出:HELLO PYTHONprint(msg.lower())# 输出:hello python
  • 查找与替换find()查找子串位置,replace()替换子串
sentence="I like programming in Python"print(sentence.find("Python"))# 输出:20new_sentence=sentence.replace("Python","Java")print(new_sentence)# 输出:I like programming in Java
  • 字符串分割split()按指定分隔符拆分字符串
data="apple,banana,orange"fruits=data.split(",")print(fruits)# 输出:['apple', 'banana', 'orange']

二、列表(list):灵活的数据容器

2.1 定义与创建

列表是由一系列按特定顺序排列的元素组成的可变序列,支持存储不同类型的数据。

创建列表的两种方式:

# 方括号直接创建list1=[1,2,3,'a','b']# 使用list()函数转换list2=list("hello")# 输出:['h', 'e', 'l', 'l', 'o']

2.2 常用函数与操作

列表的灵活性体现在其丰富的操作方法上:

  • 增删元素append()末尾添加,insert()指定位置插入,pop()删除末尾元素
fruits=['apple','banana']fruits.append('orange')# 列表变为:['apple', 'banana', 'orange']fruits.insert(1,'grape')# 列表变为:['apple', 'grape', 'banana', 'orange']last_fruit=fruits.pop()# 删除'orange',last_fruit的值为'orange'
  • 列表排序sort()对列表进行永久排序
numbers=[3,1,4,1,5,9]numbers.sort()print(numbers)# 输出:[1, 1, 3, 4, 5, 9]
  • 列表切片:通过切片获取子列表
letters=['a','b','c','d','e']sub_letters=letters[1:4]# 获取索引1到3的元素print(sub_letters)# 输出:['b', 'c', 'd']

三、元组(tuple):不可变的序列

3.1 定义与创建

元组与列表类似,也是有序的元素集合,但元组是不可变的数据类型,创建后不能修改。

创建元组的两种方式:

# 圆括号直接创建(元素后加逗号)tuple1=(1,2,3)single_element_tuple=(4,)# 单元素元组必须加逗号# 省略括号创建(不推荐,可读性差)tuple2=1,2,3

3.2 常用函数与操作

由于元组的不可变性,其操作相对较少:

  • 元素访问:通过索引访问元素
colors=('red','green','blue')print(colors)# 输出:green
  • 元组解包:将元组元素赋值给多个变量
point=(10,20)x,y=pointprint(f"x坐标为:{x}, y坐标为:{y}")# 输出:x坐标为:10, y坐标为:20
  • 计数与查找count()统计元素出现次数,index()查找元素位置
nums=(1,2,3,2,1)print(nums.count(2))# 输出:2print(nums.index(3))# 输出:2

四、字典(dict):键值对的映射

4.1 定义与创建

字典是通过键(key)来访问值(value)的无序集合,键必须是不可变类型(如字符串、数字、元组)。

创建字典的三种方式:

# 花括号直接创建dict1={'name':'Alice','age':25}# 使用dict()函数转换dict2=dict(name='Bob',age=30)# 从键值对列表创建dict3=dict([('name','Charlie'),('age',35)])

4.2 常用函数与操作

字典提供了高效的键值对管理功能:

  • 访问与修改:通过键访问或修改值
person={'name':'Tom','age':20}print(person['name'])# 输出:Tomperson['age']=21# 修改age的值
  • 增删键值对:直接赋值添加新键值对,del删除键值对
person['city']='Beijing'# 添加新键值对delperson['age']# 删除age键值对
  • 字典遍历keys()遍历所有键,values()遍历所有值,items()遍历所有键值对
forkey,valueinperson.items():print(f"{key}:{value}")

五、集合(set):无序不重复元素集

5.1 定义与创建

集合是由不重复元素组成的无序容器,主要用于成员关系测试和去重操作。

创建集合的两种方式:

# 花括号直接创建(注意与字典区分)set1={1,2,3,4}# 使用set()函数从列表转换set2=set([1,2,2,3,4])# 输出:{1, 2, 3, 4}(自动去重)

5.2 常用函数与操作

集合支持丰富的数学集合运算:

  • 集合运算:并集(|union())、交集(&intersection())、差集(-difference()
A={1,2,3}B={2,3,4}print(A|B)# 输出:{1, 2, 3, 4}(并集)print(A&B)# 输出:{2, 3}(交集)print(A-B)# 输出:{1}(差集)
  • 增删元素add()添加单个元素,remove()删除指定元素
numbers={1,2,3}numbers.add(4)# 集合变为:{1, 2, 3, 4}numbers.remove(2)# 集合变为:{1, 3, 4}

六、数据结构对比总结

数据结构可变性有序性元素要求主要用途
字符串不可变有序字符文本处理
列表可变有序任意类型数据集合管理
元组不可变有序任意类型数据保护、固定结构
字典可变无序键不可变键值对映射
集合可变无序不可变类型去重、集合运算

结语

掌握Python基础数据结构是编程学习的关键一步。字符串处理文本,列表管理序列,元组保护数据,字典实现映射,集合处理唯一性——每种结构都有其独特的应用场景。建议初学者通过实际项目练习,逐步熟悉这些数据结构的特性和用法,为更复杂的编程任务打下坚实基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 4:49:18

Cobalt Strike流量溯源实战:从网络取证到攻击链还原

1. 项目概述:从一份流量包到Cobalt Strike的完整溯源最近在玄机靶场刷题,遇到一个关于Cobalt Strike(后文简称CS)流量溯源的挑战,题目给了一个名为“流量分析1.pcap”的数据包文件。这可不是一个简单的“找Flag”任务&…

作者头像 李华
网站建设 2026/7/3 4:48:06

北京华恒智信为教培行业搭建动态定编体系

一、教培机构排课与用工陷入峰谷失衡恶性循环教培行业的人力资源配置,是服务行业中用工波动最极端的类型之一,始终深陷“旺季师资紧缺、淡季人力空转”的矛盾循环,几乎覆盖学科培训、艺术培训、语言培训、职业技能培训等所有细分赛道。在周末…

作者头像 李华
网站建设 2026/7/3 4:47:32

【Java课程设计/毕业设计】基于 SpringBoot 的高校学生组织综合运维管理系统的设计与实现 校园学生组织资料与活动一体化管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/3 4:46:41

Python异步编程实战:构建高并发AI API调用管线

AI应用的核心性能瓶颈不在模型推理,而在网络IO。本文用纯Python代码演示如何用asyncio构建高并发的API调用管线,包括批量请求、并发控制、结果聚合的完整实现。一、为什么AI应用必须用异步先看一个同步调用的例子:python# 同步调用&#xff1…

作者头像 李华
网站建设 2026/7/3 4:46:07

质量好的全屋定制厂商名声

我在宝鸡做了12年全屋定制,从2014年开店,到2017年自建工厂,再到如今服务超20000户业主,见过太多业主踩坑。今天我用真实数据和案例,拆解全屋定制行业的4个“潜规则”,看完能帮你省下至少三分之一预算。一、…

作者头像 李华
网站建设 2026/7/3 4:43:37

3种完整授权方案深度探讨:Beyond Compare 5授权管理技术实现指南

3种完整授权方案深度探讨:Beyond Compare 5授权管理技术实现指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen BCompare_Keygen是一个基于Python 3开发的Beyond Compare 5.x版本授…

作者头像 李华