【Python基础】数据容器的切片操作和集合

简介: 【Python基础】数据容器的切片操作和集合

前言


Python编程中,数据容器是不可或缺的一部分。它们允许我们存储和管理数据,而切片操作和集合则是处理这些数据的重要工具。本文将深入探讨Python中的切片操作和集合,包括它们的定义、用法、常见格式以及示例代码,以帮助您更好地理解和利用它们。


一、切片操作


1.1 什么是切片?

切片是一种用于从序列类型(如列表、元组和字符串)中选择子集的操作。它允许您根据索引范围来提取序列中的元素,而不必遍历整个序列。切片操作非常灵活,能够处理各种不同格式的序列。


1.2 如何使用切片?

切片的基本语法是:sequence[start:stop:step],其中:

sequence 是要切片的序列。

start 是切片的起始索引(包括该索引处的元素)。

stop 是切片的结束索引(不包括该索引处的元素)。

step 是切片的步长,表示每隔多少个元素取一个。默认值为1。

不同的切片格式和意义

基本切片:sequence[start:stop]

返回从 start 到 stop-1 的子序列。

带步长的切片:sequence[start:stop:step]

返回从 start 到 stop-1 的子序列,每隔 step 个元素取一个。

省略起始和结束索引:

如果省略 start,默认从序列的开头开始。

如果省略 stop,默认到序列的末尾结束。

示例代码

下面是一些切片操作的示例代码:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]


a7a9645345994ffaa4aff51b90c408d4.png


基本切片


subset1 = my_list[2:5]  # 返回 [3, 4, 5]


6422859e4af34e3287bf4f27f88a2053.png


带步长的切片


subset2 = my_list[1:7:2]  # 返回 [2, 4, 6]


3bf3dcabd736452c863388eacc1c0638.png


省略起始和结束索引


subset3 = my_list[:5]     # 返回 [1, 2, 3, 4, 5]
subset4 = my_list[3:]     # 返回 [4, 5, 6, 7, 8, 9]


5918a0053d604e6fa8a0aa671057d890.png


逆序切片


subset5 = my_list[::-1]   # 返回 [9, 8, 7, 6, 5, 4, 3, 2, 1]


c040c4dde9b04ce8be7741ddd6e91dcc.png


二、集合


2.1 什么是集合?

集合是Python中的一种数据容器,它是由不重复元素组成的无序集合。这意味着集合中的元素是唯一的,而且不按特定的顺序排列。


2.2 如何定义集合?

要定义一个集合,可以使用set() 构造函数。

my_set2 = set([3, 4, 5])


09f4b68571d947438c6a09a1c23b6c56.png


2.3 集合常用函数

1. add()

作用: add() 函数用于向集合中添加一个元素。

参数: 需要添加到集合中的元素。

返回值: None

示例代码:

my_set = set([1,2,3])
# 向集合中添加元素
my_set.add(4)  # my_set 现在是 {1, 2, 3, 4}


8d3312b8400745f19ebb0324f48d4895.png

2. remove()

作用: remove() 函数用于从集合中移除指定元素。如果元素不存在于集合中,会引发 KeyError 错误。

参数: 要移除的元素。

返回值: None

示例代码:

my_set = set([1,2,3])
# 移除元素
my_set.remove(2)  # my_set 现在是 {1, 3}
# 尝试移除不存在的元素,会引发 KeyError 错误
my_set.remove(4)  # 引发 KeyError: 4


187ba097a874494aa3d1afbed42ccd19.png

3. discard()

作用: discard() 函数用于从集合中移除指定元素。与 remove() 不同的是,如果元素不存在于集合中,discard() 不会引发错误。

参数: 要移除的元素。

返回值: None

示例代码:

my_set = set([1,2,3])
# 移除元素
my_set.discard(2)  # my_set 现在是 {1, 3}
# 尝试移除不存在的元素,不会引发错误
my_set.discard(4)  # my_set 仍然是 {1, 3}


73b61fa54c054857955f3f941b9ae27d.png

4. pop()

作用: pop() 函数用于随机移除并返回集合中的一个元素。如果集合为空,会引发 KeyError 错误。

参数: 无参数。

返回值: 被移除的元素。

示例代码:

my_set = set([1,2,3])
# 随机移除并返回一个元素
random_element = my_set.pop()  # 可能返回 1、2 或 3
# 如果集合为空,会引发 KeyError 错误
empty_set = set()
empty_set.pop()  # 引发 KeyError: 'pop from an empty set'


a3045c2fdcfa4092a01b2b21ebc6701d.png

5. clear()

作用: clear() 函数用于清空集合中的所有元素,使集合变为空集。

参数: 无参数。

返回值: None

示例代码:

my_set = set([1,2,3])
# 清空集合
my_set.clear()  # my_set 变成空集合 set()


43a3aab710904392b9ddc3cc2852a1c0.png


总结


本文介绍了Python中的切片操作和集合。切片操作是用于从序列中选择子集的强大工具,可以根据需要取出部分元素。集合则是用于存储不重复元素的数据容器,适用于需要唯一性的情况。了解和掌握这些概念和技巧将有助于更高效地处理和操作数据。希望本文的示例代码和解释对您有所帮助,使您更加熟练地使用这些功能。

相关文章
|
2月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
1419 1
|
2月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
439 0
|
2月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
2月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
177 4
|
Python 容器
捋一捋操作python容器的内置通用函数
正式的Python专栏第31篇,同学站住,别错过这个从0开始的文章!
383 0
捋一捋操作python容器的内置通用函数
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
311 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
340 104
|
3月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
271 103
|
3月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
205 82

热门文章

最新文章

推荐镜像

更多