「Python系列」Python数据结构

本文涉及的产品
云原生网关 MSE Higress,422元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Python提供了多种内置的数据结构,这些数据结构在编程中非常有用。

一、数据结构

Python提供了多种内置的数据结构,这些数据结构在编程中非常有用。以下是Python中常见的一些数据结构:

  1. 列表(List):
    列表是Python中最常用的数据结构之一,它是一个有序的集合,可以包含任意类型的对象,包括数字、字符串、元组、列表等。列表是可变的,意味着你可以修改、添加或删除列表中的元素。
my_list = [1, 2, 3, "four", 5.5]
my_list.append(6)  # 添加元素
my_list.remove(3)  # 删除元素

方法
|方法| 描述|
|-------|-------|
list.append(x)| 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。
list.extend(L)| 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。
list.insert(i, x)| 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
list.remove(x)| 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
list.pop([i])| 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()|返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。)
list.clear()| 移除列表中的所有项,等于del a[:]。
list.index(x)| 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
list.count(x)| 返回 x 在列表中出现的次数。
list.sort()| 对列表中的元素进行排序。
list.reverse()| 倒排列表中的元素。
list.copy()| 返回列表的浅复制,等于a[:]。

  1. 元组(Tuple):
    元组与列表类似,也是一个有序的集合,但它是不可变的。一旦元组被创建,就不能修改它的内容。元组通常用于存储不需要修改的数据。

创建元组

你可以使用圆括号 () 来创建一个元组。元组中的元素之间用逗号分隔。

# 创建一个包含整数的元组
my_tuple = (1, 2, 3)

# 创建一个包含不同类型元素的元组
mixed_Tuple = (1, "hello", 3.14)

# 创建一个空元组
empty_Tuple = ()

# 创建一个只有一个元素的元组(注意逗号的使用)
single_element_Tuple = (42,)

访问元组元素

你可以通过索引来访问元组中的元素。索引是从0开始的整数。

my_Tuple = (10, 20, 30, 40)

# 访问第一个元素
first_element = my_Tuple[0]  # 输出: 10

# 访问最后一个元素
last_element = my_Tuple[-1]  # 输出: 40

# 访问第三个元素
third_element = my_Tuple[2]  # 输出: 30

元组操作

虽然元组是不可变的,但你还是可以对它们进行一些操作,如连接、重复、索引、切片等。

# 连接两个元组
tuple1 = (1, 2, 3)
Tuple2 = (4, 5, 6)
combined_Tuple = Tuple1 + Tuple2  # 输出: (1, 2, 3, 4, 5, 6)

# 重复一个元组
repeated_Tuple = Tuple1 * 2  # 输出: (1, 2, 3, 1, 2, 3)

# 切片操作
sliced_Tuple = my_Tuple[1:3]  # 输出: (20, 30)

# 检查元素是否在元组中
if 20 in my_Tuple:
    print("20 is in the tuple")

# 获取元组长度
length = len(my_Tuple)  # 输出: 4

元组与列表的比较

元组和列表非常相似,但主要的区别在于元组是不可变的,而列表是可变的。这意味着一旦你创建了一个元组,就不能修改它,而列表可以在任何时候被修改。

  • 元组:不可变、用于存储不可变的数据集合、用作字典的键、因为不可变所以更安全。
  • 列表:可变、用于存储可变的数据集合、不可以用作字典的键、因为可变所以更加灵活。

元组的用途

  • 当你需要一个不会改变的数据集合时,可以使用元组。
  • 元组常用于表示一系列相关的值,例如坐标点(x, y)。
  • 因为元组是不可变的,所以它们经常用作字典的键。
  • 当函数需要返回多个值时,元组是一个很好的选择。

虽然元组是不可变的,但你可以通过元组解包(tuple unpacking)来轻松地将元组中的值赋给变量。

x, y, z = (1, 2, 3)
print(x)  # 输出: 1
print(y)  # 输出: 2
print(z)  # 输出: 3

更多详细介绍,可了解下我的另一篇文章
「Python系列」Python元组

  1. 字典(Dictionary):
    字典是一个无序的键值对集合。每个键在字典中都是唯一的,通过键可以快速地访问、添加或删除对应的值。
my_dict = {
   "name": "Alice", "age": 25, "city": "New York"}
print(my_dict["name"])  # 输出: Alice
my_dict["country"] = "USA"  # 添加键值对
del my_dict["age"]  # 删除键值对
  1. 集合(Set):
    集合是一个无序且不包含重复元素的集合。集合通常用于成员关系测试和消除重复元素。
my_set = {
   1, 2, 3, 3, 4}  # 重复的元素会被自动移除
my_set.add(5)  # 添加元素
my_set.remove(2)  # 删除元素
  1. 字符串(String):
    虽然字符串在Python中是不可变的,但它们仍然是一种非常重要的数据结构。字符串是由字符组成的序列,可以用于表示文本信息。
my_string = "Hello, World!"
print(my_string[0])  # 输出: H
# my_string[0] = 'h'  # 这行代码会报错,因为字符串是不可变的
  1. 自定义数据结构:
    除了内置的数据结构外,你还可以使用类(Class)来定义自己的数据结构。例如,你可以创建一个类来表示一个二维点,包含x和y坐标。
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p = Point(1, 2)
print(p.x, p.y)  # 输出: 1 2

这些数据结构提供了强大的功能,可以帮助你更有效地组织和操作数据。每种数据结构都有其适用的场景和优缺点,因此选择正确的数据结构对于编写高效和可维护的代码至关重要。

二、相关链接

  1. Python下载安装中心
  2. Python官网
  3. Python软件下载
  4. 「Python系列」Python简介及案例
  5. 「Python系列」Python基础语法/数据类型
  6. 「Python系列」Python解释器
  7. 「Python系列」Python运算符
相关文章
|
10天前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
102 66
|
2月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
152 59
|
3月前
|
算法 开发者 计算机视觉
燃爆全场!Python并查集:数据结构界的网红,让你的代码炫酷无比!
在编程的世界里,总有一些数据结构以其独特的魅力和高效的性能脱颖而出,成为众多开发者追捧的“网红”。今天,我们要介绍的这位明星,就是Python中的并查集(Union-Find)——它不仅在解决特定问题上大放异彩,更以其优雅的设计和强大的功能,让你的代码炫酷无比,燃爆全场!
45 0
|
2月前
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
|
14天前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
50 20
|
2月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
|
2月前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
|
2月前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
|
3月前
|
Python
Python 中常见的数据结构(二)
Python 中常见的数据结构(二)
28 4
|
3月前
|
存储 索引 Python
Python 中常见的数据结构(一)
Python 中常见的数据结构(一)
46 3