【Python基础】Python数据容器(切片)

简介: 【Python基础】Python数据容器(切片)

数据容器(序列)的切片

  • 序列:内容连续、有序,可使用下标索引的一类数据容器
    列表、元组、字符串,均可以视为序列

切片定义

在Python中,切片是一种非常方便的操作,它允许从列表、元组、字符串等序列类型中,获取一部分元素或子序列。


切片通过使用start、stop和step三个参数来指定要获取的元素范围。其中,start指定开始索引,stop指定结束索引(但不包括结束索引对应的元素),step指定步长(默认为1)。


下面是一些示例:

#字符串切片
s = 'Hello, World!'
print(s[7:])   # World!
print(s[0:5])  # Hello
print(s[::2])  # Hlo ol!
#列表切片
my_list = [1,2,3,4,5]
print(my_list[1:3])     # [2, 3]
print(my_list[::2])     # [1, 3, 5]
#元组切片
my_tuple = (1,2,3,4,5)
print(my_tuple[1:4:2])  # (2, 4)

切片操作还可以用于复制序列,例如:

my_list = [1, 2, 3, 4, 5]
copy_list = my_list[:] #复制整个列表
print(copy_list)

切片操作也可以用于修改序列中的元素,例如:

my_list = [1, 2, 3, 4, 5]
my_list[1:3] = [6, 7] #将第二和第三个元素替换为6和7
print(my_list)  # [1, 6, 7, 4, 5]

总之,切片操作可以让我们更方便地处理序列类型的数据,是Python中非常实用的一种特性。

序列的常用操作 - 切片

序列支持切片,即:列表、元组、字符串,均支持进行切片操作

切片:从一个序列中,取出一个子序列

语法:序列[起始下标:结束下标:步长] 取出的子序列不包含结束下标对应的元素

表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列

  • 起始下标表示从何处开始,可以留空,留空视作从头开始
  • 结束下标(不含)表示何处结束,可以留空,留空是做截取到结尾
  • 步长表示,依次取出元素的间隔
  • 步长1表示,一个个去元素
  • 步长2表示,每次跳过一个元素取
  • 步长N表示,每次跳过N-1给元素取
  • 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

Tip:此操作不会影响序列本身,而是会得到一个新的秀娥(列表、元组、字符串)

"""
演示 对序列进行切片操作
"""
# 正向
# 对list进行切片,从1开始,4结束,步长1
my_list = [0, 1, 2, 3, 4, 5, 6]
result1 = my_list[1:4]   # 步长默认是1,所以可以省略不写   # 不包含结束下标(此处即下标为4的元素)的元素
print(f"结果1:{result1}")
# 对tuple进行切片,从头开始,到最后结束,步长1
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result2 = my_tuple[:]  # 起始和结束不写表示从头到尾,步长为1可以省略
print(f"结果2:{result2}")
# 对str进行切片,从头开始,到最后结束,步长2
my_str = "01234567"
result3 = my_str[::2]  # 从头到尾,步长为2
print(f"结果3:{result3}")
运行效果:
结果1:[1, 2, 3]
结果2:(0, 1, 2, 3, 4, 5, 6)
结果3:0246
# 反向
# 对str进行切片,从头开始,到最后结束,步长-1
my_str = "01234567"
result4 = my_str[::-1]
print(f"结果2:{result4}")
# 对列表进行切片,从3开始,到1结束,步长-1
my_list = [0, 1, 2, 3, 4, 5, 6]
result5 = my_list[3:1:-1]
print(f"结果5:{result5}")
# 对元组进行切片,从头开始,到尾结束
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result6 = my_tuple[::-2]
print(f"结果6:{result6}")
运行效果:
结果4:76543210
结果5:[3, 2]
结果6:(6, 4, 2, 0)
  • 练习案例:序列的切片实践
"""
序列的切片课后练习
my_str = "nohtyp1,ih" 取出python
"""
my_str = "nohtyp1,ih"
# 倒序字符串,切片取出
result1 = my_str[::-1][4:10]
print(f"方式1结果:{result1}")
# 切片取出,然后倒序
result2 = my_str[0:6][::-1]
print(f"方式2:{result2}")
# split分割”,“,replace替换1为空,倒序字符串
step1_list = my_str.split(",")
result3 = step1_list[0].replace("1", "")[::-1]
print(f"方式3:{result3}")
运行效果:
方式1结果:python
方式2:python
方式3:python


目录
相关文章
|
17天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
15天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
25天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
34 1
|
28天前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
45 3
|
29天前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
74 0
|
1月前
|
数据采集 存储 分布式计算
超酷炫Python技术:交通数据的多维度分析
超酷炫Python技术:交通数据的多维度分析
|
11天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
141 77
|
19天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
3天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
18 3
实战~如何组织一个多容器项目docker-compose
|
12天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
54 3