Python数据结构

数据结构

本文介绍了Python中五种基本数据结构及其特点:1)列表(有序、可变、多种类型混合);2)元组(有序、不可变、适合存储固定数据);3)字典(键值对映射、快速查找);4)集合(无序、元素唯一、支持集合运算);5)字符串(字符序列、不可变)。每种数据结构都配有基础操作示例代码,包括元素的增删改查等操作。这些数据结构可嵌套使用以构建更复杂的数据模型,是Python编程的重要基础。

注意: 数据类型如下:
在这里插入图片描述

欢迎大家在评论区留言或私信,交流学习心得或学习R的过程中遇到的问题。感谢大家的支持和关注,您的支持是我创作的最大动力。

1.列表

列表是Python中最通用、最常用的数据结构,用方括号 [ ] 表示。特点如下:
有序:元素按插入顺序存储。
可变:可以动态地添加、删除或修改元素。
可包含任意类型:一个列表可以包含数字、字符串、甚至其他列表。

my_list = [1, 2, 3, 'apple']

# 访问元素 (通过索引,从0开始)
print(my_list[0])  # 输出: 1

# 修改元素
my_list[1] = 'banana'  # 列表变为 [1, 'banana', 3, 'apple']

# 添加元素
my_list.append(4)       # 在末尾添加: [1, 'banana', 3, 'apple', 4]
my_list.insert(1, 'x')  # 在索引1处插入'x'

# 删除元素
del my_list[2]          # 删除索引为2的元素
popped = my_list.pop()  # 弹出并返回最后一个元素

# 切片 (获取子列表)
sub_list = my_list[1:3] # 获取索引12的元素 (不包含3)

2.元组

元组类似于列表,但它是不可变的,用圆括号 ( ) 表示。特点如下:
不可变:一旦创建,内容无法更改。这使得它们比列表更安全,并且可以作为字典的键。
有序:元素按插入顺序存储。
通常用于存储相关的数据项,例如一个点的坐标 (x, y)。

my_tuple = (1, 2, 'hello')

# 访问元素
print(my_tuple[1])  # 输出: 2

# 不能修改,以下操作会报错
# my_tuple[1] = 'world' # TypeError

# 元组解包
x, y, z = my_tuple
print(y)  # 输出: 2

3.字典

字典用于存储键值对映射关系,用花括号 {} 表示,格式为 key: value。特点如下:
无序(在Python 3.7+中,插入顺序被保留,但不应依赖于此进行逻辑判断)。
键必须是不可变类型(如字符串、数字、元组)。
值可以是任意类型。
通过键来快速访问值,速度极快。

my_dict = {'name': 'Bob', 'age': 30, 'city': 'New York'}

# 访问值
print(my_dict['name'])  # 输出: Bob
print(my_dict.get('age'))  # 输出: 30 (更安全,键不存在时返回None)

# 添加/修改键值对
my_dict['job'] = 'Engineer'  # 添加
my_dict['age'] = 31          # 修改

# 删除键值对
del my_dict['city']
popped_value = my_dict.pop('age')

# 遍历
for key, value in my_dict.items():
    print(f"{key}: {value}")

4.集合

集合是一个无序的、不重复的元素集,用花括号 {} 表示(但没有冒号,或者使用 set() 函数创建)。特点如下:
元素唯一:自动去除重复项。
无序:不记录元素的插入位置。
主要用于成员关系测试、去重和集合运算(如并集、交集)。

my_set = {1, 2, 2, 3, 4}
print(my_set)  # 输出: {1, 2, 3, 4} (自动去重)

# 添加元素
my_set.add(5)

# 删除元素
my_set.remove(2)  # 如果元素不存在会报错
my_set.discard(10) # 安全删除,即使元素不存在也不会报错

# 集合运算
a = {1, 2, 3}
b = {2, 3, 4}
print(a | b)  # 并集: {1, 2, 3, 4}
print(a & b)  # 交集: {2, 3}
print(a - b)  # 差集 (在a中但不在b中): {1}

5.字符串

字符串是字符的不可变序列。特点如下:
不可变:一旦创建,无法单独修改其中的字符。
有序:字符有固定的位置(索引)。

my_str = "Hello, World!"

# 访问字符
print(my_str[0])  # 输出: H

# 切片
print(my_str[7:12])  # 输出: World

# 字符串方法
print(my_str.lower())      # 转为小写: "hello, world!"
print(my_str.split(','))   # 分割字符串: ['Hello', ' World!']
print('Hello' in my_str)   # 成员检查: True

# 不能修改,以下操作会报错
# my_str[0] = 'h' # TypeError

这些数据结构是Python编程的基石,熟练掌握它们将极大地提升你的编程效率。在实际应用中,它们常常被嵌套使用,例如创建一个包含字典的列表,或者一个值为元组的字典等,以构建更复杂的数据模型。

※※大家在使用的时候遇到任何问题欢迎留言,您的支持是我创作的最大动力。※※

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小火柴123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值