news 2026/1/12 9:49:37

Python中的数据序列其一

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中的数据序列其一

目录

前言

一、字符串

1.字符串的定义

2.字符串的切片

3.字符串的操作方法

查找方法

修改方法

判断方法

补充

二、列表

1.列表的定义

2.列表的相关操作

查操作

增操作

删操作

改操作

三、元组

1.元组的定义

2.元组的应用场景

查询方法

总结


前言

在Python编程的舞台上,字符串、列表和元组如同三位各具特长的演员:字符串是不可变的文本诗人,列表是灵活多变的数据管家,元组是稳定可靠的数字契约。它们虽都是序列家族成员,却以不同方式演绎着数据存储与处理的精髓,共同构建了Python数据处理的基础架构。理解它们的特性与差异,是掌握Python编程艺术的关键第一步。


一、字符串

1.字符串的定义

字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

str1 = 'abcdefg' str2 = "hello world" print(type(str1)) # <class 'str'> print(type(str2)) # <class 'str'>

2.字符串的切片

number = '0123456789' # 1、从2到5开始切⽚,步⻓为1 print(number[2:5:1]) print(number[2:5]) # 2、只有结尾的字符串切⽚:代表从索引为0开始,截取到索引为5的位置(不包含索引为5的数据) print(number[:5]) # 3、只有开头的字符串切⽚:代表从起始位置开始,已知截取到字符串的结尾 print(number[1:]) # 4、获取或拷⻉整个字符串 print(number[:]) # 5、调整步阶:类似求偶数 print(number[::2]) # 6、把步阶设置为负整数:类似字符串翻转 print(number[::-1]) # 7、起始位置与结束位置都是负数 print(number[-4:-1]) # 8、结束字符为负数,如截取012345678 print(number[:-1])

3.字符串的操作方法

查找方法

  • find():检测某个字符串是否包含在这个字符串中,如果在返回这个字符串开始的位置下标,否则则返回-1。
  • index():检测某个字符串是否包含在这个字符串中,如果在返回这个字符串开始的位置下标,否则则报异常。
# 定义⼀个字符串 str1 = 'hello world hello linux hello python' # 查找linux⼦串是否出现在字符串中 print(str1.find('linux')) # 18 # 在str1中查找不存在的⼦串 print(str1.find('and')) # -1 # 定义新的⼀个字符串 str1 = 'apple, banana, orange' # 判断apple是否出现在字符串str1中 print(str1.index('apple')) # 0 print(str1.index('pineapple')) # 报错

修改方法

  • replace():返回替换后的字符串
  • split():返回切割后的列表序列
  • title():所有单词首字母大写
  • upper()与lower():返回全部大写或小写的字符串
str1 = 'hello linux and hello linux' # 把字符串中所有linux字符替换为python print(str1.replace('linux', 'python')) # hello python and hello python # 把字符串中的第⼀个linux进⾏替换为python print(str1.replace('linux', 'python', 1)) # hello python and hello linux # 把and字符串替换为&& print(str1.replace('and', '&&')) # hello linux && hello linux str1 = 'apple-banana-orange' print(str1.split('-')) # ['apple', 'banana', 'orange'] str1 = 'hello linux and hello linux' print(str1.title()) # Hello Linux And Hello Linux print(str1.upper()) # HELLO LINUX AND HELLO LINUX print(str1.lower()) # hello linux and hello linux

判断方法

  • isalpha():检查字符串是否所有字符都是字母则返回 True,否则返回 False
  • isdigit():检查字符串是否所有字符都是数字则返回 True,否则返回 False
str1 = 'linux' str2 = '123' print(str1.isalpha()) # True print(str1.isdigit()) # False print(str2.isalpha()) # False print(str2.isdigit()) # True

补充

  • join()方法:和split()方法正好相反,其主要功能是把序列拼接为字符串
list1 = ['apple', 'banana', 'orange'] print('-'.join(list1)) # apple-banana-orange

二、列表

1.列表的定义

列表序列名称 = [列表中的元素1, 列表中的元素2, 列表中的元素3, ...]

例子:

list1 = ['apple', 'banana', 'pineapple'] # list列表类型⽀持直接打印 print(list1) # ['apple', 'banana', 'pineapple'] # 打印列表的数据类型 print(type(list1)) # <class 'list'>

2.列表的相关操作

列表的作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:

增、删、改、查

查操作

  • index():指定数据所在位置的下标
  • count():统计指定数据在当前列表中出现的次数
  • in:判断指定数据在某个列表序列,如果在返回True,否则返回False
  • not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回 False
# 1、查找某个元素在列表中出现的位置(索引下标) list1 = ['apple', 'banana', 'pineapple'] print(list1.index('apple')) # 0 # print(list1.index('peach')) # 报错 # 2、count()⽅法:统计元素在列表中出现的次数 list2 = ['刘备', '关⽻', '张⻜', '关⽻', '赵云'] # 统计⼀下关⽻这个元素在列表中出现的次数 print(list2.count('关⽻')) # 2 # 3、in⽅法和not in⽅法(⿊名单系统) list3 = ['192.168.1.15', '10.1.1.100', '172.35.46.128'] if '10.1.1.100' in list3: print('⿊名单IP,禁⽌访问') else: print('正常IP,访问站点信息')

增操作

  • append():增加指定数据到列表中
  • extend():列表结尾追加数据,如果数据是一个序列, 则将这个序列的数据逐一添加到列表
  • insert():指定位置新增数据
names = ['孙悟空', '唐僧', '猪⼋戒'] # 在列表的尾部追加⼀个元素"沙僧" names.append('沙僧') # 打印列表 print(names) # ['孙悟空', '唐僧', '猪⼋戒', '沙僧'] list1 = ['Tom', 'Rose', 'Jack'] # 1、使⽤extend⽅法追加元素"Jerry" # names.extend("Jerry") # print(names) # 2、建议:使⽤extend⽅法两个列表进⾏合并 list2 = ['Hack', 'Jerry'] list1.extend(list2) print(list1) # ['Tom', 'Rose', 'Jack', 'Hack', 'Jerry'] names = ['薛宝钗', '林黛⽟'] # 在薛宝钗和林黛⽟之间,插⼊⼀个新元素"贾宝⽟" names.insert(1, '贾宝⽟') print(names) # ['薛宝钗', '贾宝⽟', '林黛⽟']

删操作

  • del 列表[索引]:删除列表中的某个元素
  • pop():删除指定下标的数据(默认为最后⼀个),并 返回该数据
  • remove():移除列表中某个数据的第⼀个匹配项。
names = ['Tom', 'Rose', 'Jack', 'Jerry'] # 删除Rose del names[1] # 打印列表 print(names) # ['Tom', 'Jack', 'Jerry'] names = ['貂蝉', '吕布', '董卓'] del_name = names.pop() # 或 # del_name = names.pop(1) print(del_name) # 董卓 print(names) # ['貂蝉', '吕布'] fruit = ['apple', 'banana', 'pineapple'] fruit.remove('banana') print(fruit) # ['apple', 'pineapple']

改操作

  • 列表[索引] = 修改后的值:修改列表中的某个元素
  • reverse():将数据序列进行倒叙排列
  • sort():对列表序列进行排序
list1 = ['貂蝉', '⼤乔', '⼩乔', '⼋戒'] # 修改列表中的元素 list1[3] = '周瑜' print(list1) # ['貂蝉', '⼤乔', '⼩乔', '周瑜'] list2 = [1, 2, 3, 4, 5, 6] list2.reverse() print(list2) # [6, 5, 4, 3, 2, 1] list3 = [10, 50, 20, 30, 1] list3.sort() # 升序(从⼩到⼤) # 或 # list3.sort(reverse=True) # 降序(从⼤到⼩) print(list3) # [1, 10, 20, 30, 50]

三、元组

1.元组的定义

元组特点:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。

基本语法:

# 多个数据元组 tuple1 = (10, 20, 30) # 单个数据元组 tuple2 = (10,) # 如果定义的元组只有⼀个数据,那么这个数据后⾯也要添加逗号,否则数据类型为唯⼀的这个数据的数据类型。

元组的应用场景:

  • 函数的参数和返回值,一个函数可以接受任意多个参数,或者依次返回多个数据(了解)
  • 格式化字符串,百分号和format,格式化字符串后面的()本质上就是一个元组
name = '张三' age = 18 address = '北京' print('姓名:%s,年龄:%d,家庭住址:%s' % (name, age, address)) # 姓名:张三,年龄:18,家庭住址:北京
  • 让列表不可以修改,以保护数据安全
  • python操作mysql数据库,返回结果,默认也是元组类型

2.元组的应用场景

由于元组中的数据不允许直接修改,所以其操作方法大部分为查询方法。

查询方法

  • 元组[索引]:根据 索引下标查找元素
  • index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同
  • count():统计指定数据在当前元组中出现的次数
str1 = (1, 2, 3, 4, 5, 3, 3) print(str1[1]) # 2 print(str1.index(2)) # 1 print(str1.count(3)) # 3

总结

Python序列三剑客各司其职:字符串专注不可变文本,列表擅长动态数据管理,元组守护不可变结构。掌握其核心特性与适用场景,是编写高效、清晰Python代码的基石。选择正确的工具,组合运用,便能优雅解决大多数数据组织问题。从理解到熟练运用,是每一位Python开发者精进之路上的关键一步。

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

HyperbolicRAG:双曲空间如何解决RAG多跳检索难题?大模型开发者必学技术

HyperbolicRAG通过双曲空间表示解决传统RAG在多跳问答中的局限性。针对语义枢纽和层次缺失问题&#xff0c;该方案提出层次感知表示学习、无监督双向对齐和双路检索互排融合方法。实验表明&#xff0c;该方法在6个数据集上检索性能全部Top-1&#xff0c;端到端QA结果比基线高0.…

作者头像 李华
网站建设 2026/1/2 14:50:01

30亿参数小模型如何媲美千亿级大模型?Nanbeige4-3B的技术突破与实践指南

本文介绍了Boss直聘南北阁大模型实验室发布的Nanbeige4-3B小语言模型&#xff0c;仅30亿参数却通过创新的数据筛选体系和训练方法&#xff0c;在数学推理、科学推理、工具调用等多项评测中超越同体量甚至更大规模的模型&#xff0c;展现了小模型通过算法优化实现"以小搏大…

作者头像 李华
网站建设 2026/1/11 7:16:55

调用多个Agent,Chatkit让APP从“单打独斗”到“团队协作”

你是不是也经常有这样的体验&#xff1f; “每次打开银行App&#xff0c;想好好做个理财规划&#xff0c;但“智能助手”只会机械地列出热门产品。 想查个航班行程&#xff0c;它展示完时间和价格&#xff0c;就没了下文。 打开电商App&#xff0c;上周刚买过的东西&#xff0c…

作者头像 李华
网站建设 2026/1/10 10:30:12

25、配置 FreeBSD 拨号上网连接

配置 FreeBSD 拨号上网连接 在当今数字化时代,网络连接是我们生活和工作中不可或缺的一部分。对于使用 FreeBSD 系统的用户来说,配置拨号上网连接可能是一项具有挑战性但又十分必要的任务。本文将详细介绍如何在 FreeBSD 系统中配置拨号上网连接,包括所需的步骤、文件配置以…

作者头像 李华
网站建设 2026/1/10 20:54:47

29、X Window系统配置与启动指南

X Window系统配置与启动指南 1. 鼠标和键盘配置 1.1 鼠标类型与协议选择 如今,PS/2鼠标或USB鼠标较为常见,串口鼠标正逐渐被淘汰。使用 xf86config 程序配置X Window系统时,首先要以root用户登录,在命令提示符下输入 xf86config 启动程序。启动后,会要求选择鼠标协…

作者头像 李华