首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python入门:6.深入解析Python中的序列

Python入门:6.深入解析Python中的序列

作者头像
平凡之路.
发布于 2025-01-13 00:30:01
发布于 2025-01-13 00:30:01
16300
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行
引言

Python 中,序列是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过索引访问数据。常见的序列类型包括字符串(str)、列表(list)和元组(tuple)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。

为了帮助初学者掌握 Python 中的序列操作,本文将围绕字符串列表元组这三种序列类型,详细介绍其定义、常用方法和具体示例。

一、字符串

1. 定义

字符串(str)是 Python 中最常见的不可变序列,用于存储字符数据。它由一系列字符组成,支持索引切片操作,常用于文本处理、数据存储和交互。

示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "Hello, Python!"
print(type(s))  # 输出 <class 'str'>
2. 字符串的索引与切片
(1) 索引

字符串中的每个字符都可以通过索引访问,索引从 0 开始,负索引表示从右向左计数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "Hello, Python!"
print(s[0])  # 输出 'H'
print(s[-1]) # 输出 '!'
(2) 切片

切片用于提取字符串的一部分,格式为 [start:stop:step]

  • start:切片的起始索引(包括)。
  • stop:切片的结束索引(不包括)。
  • step:切片步长,默认为 1。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "Hello, Python!"
print(s[0:5])   # 输出 'Hello'(索引 04print(s[7:])    # 输出 'Python!'(从索引 7 到末尾)
print(s[::-1])  # 输出 '!nohtyP ,olleH'(字符串反转)
3. 常用字符串方法
(1) 查询与定位

方法

作用

示例

find

返回子串首次出现的位置,找不到返回 -1

"hello".find("l") → 2

index

返回子串首次出现的位置,找不到抛出异常

"hello".index("l") → 2

count

返回子串出现的次数

"hello".count("l") → 2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "hello world"
print(s.find("world"))  # 输出 6
print(s.count("o"))     # 输出 2
(2) 大小写转换

方法

作用

示例

upper

转换为全大写

"hello".upper() → "HELLO"

lower

转换为全小写

"HELLO".lower() → "hello"

swapcase

大小写互换

"Hello".swapcase() → "hELLO"

capitalize

首字母大写,其余小写

"hello world".capitalize() → "Hello world"

title

每个单词首字母大写

"hello world".title() → "Hello World"

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "hello python"
print(s.upper())        # 输出 'HELLO PYTHON'
print(s.title())        # 输出 'Hello Python'
(3) 分割与连接

方法

作用

示例

split

按指定分隔符分割字符串,返回列表

"a,b,c".split(",") → ['a', 'b', 'c']

join

用指定字符连接列表中的元素,返回字符串

" ".join(["a", "b", "c"]) → "a b c"

strip

去除首尾指定字符(默认空格)

" hello ".strip() → "hello"

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "apple,banana,cherry"
fruits = s.split(",")
print(fruits)            # 输出 ['apple', 'banana', 'cherry']
print(" | ".join(fruits)) # 输出 'apple | banana | cherry'
(4) 判断类方法

方法

作用

示例

startswith

判断是否以指定字符串开头

"hello".startswith("he") → True

endswith

判断是否以指定字符串结尾

"hello".endswith("lo") → True

isalpha

检查是否只包含字母

"abc".isalpha() → True

isdigit

检查是否只包含数字

"123".isdigit() → True

isalnum

检查是否只包含字母和数字

"abc123".isalnum() → True

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "Python3"
print(s.isalnum())  # 输出 True
print(s.isdigit())  # 输出 False

二、列表

1. 定义

列表(list)是 Python 中最常用的可变序列类型。它可以存储任意类型的对象,并支持动态地添加、删除或修改元素。列表适用于需要频繁更改元素的场景。

示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lst = [1, "hello", 3.14]
print(type(lst))  # 输出 <class 'list'>
2. 列表的操作
(1) 索引与切片

列表支持通过索引访问单个元素以及切片操作访问子列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lst = [10, 20, 30, 40, 50]
print(lst[0])   # 输出 10
print(lst[-1])  # 输出 50
print(lst[1:4]) # 输出 [20, 30, 40]
(2) 增删元素

方法

作用

示例

append

在列表末尾添加元素

[1].append(2) → [1, 2]

insert

在指定位置插入元素

[1, 3].insert(1, 2) → [1, 2, 3]

remove

移除第一个匹配的元素

[1, 2, 3].remove(2) → [1, 3]

pop

移除并返回指定索引的元素

[1, 2, 3].pop(1) → 返回 2,列表变 [1, 3]

clear

清空列表

[1, 2, 3].clear() → []

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lst = [1, 2, 3]
lst.append(4)
print(lst)       # 输出 [1, 2, 3, 4]
lst.pop(1)
print(lst)       # 输出 [1, 3, 4]
lst.clear()
print(lst)       # 输出 []
(3) 排序与反转

方法

作用

示例

sort

对列表原地排序

[3, 1, 2].sort() → [1, 2, 3]

reverse

原地反转列表

[1, 2, 3].reverse() → [3, 2, 1]

sorted

返回排序后的新列表

sorted([3, 1, 2]) → [1, 2, 3]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lst = [3, 1, 4, 2]
lst.sort()
print(lst)      # 输出 [1, 2, 3, 4]
lst.reverse()
print(lst)      # 输出 [4, 3, 2, 1]
(4) 遍历列表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lst = ["apple", "banana", "cherry"]
for fruit in lst:
    print(fruit)
(5) 嵌套与列表解析

列表支持嵌套,即列表中的元素也可以是列表,同时可以使用列表解析快速生成列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nested_list = [[1, 2], [3, 4], [5, 6]]
print(nested_list[1][1])  # 输出 4

squares = [x**2 for x in range(5)]
print(squares)            # 输出 [0, 1, 4, 9, 16]

三、元组

1. 定义

元组(tuple)是不可变的序列类型,用于存储多个值。元组在需要保护数据不被修改时非常有用,例如作为函数的返回值或字典的键。

示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tpl = (10, 20, 30)
print(type(tpl))  # 输出 <class 'tuple'>
2. 元组的操作
(1) 索引与切片

元组支持通过索引访问单个元素以及切片操作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tpl = (10, 20, 30, 40, 50)
print(tpl[0])    # 输出 10
print(tpl[1:4])  # 输出 (20, 30, 40)
(2) 元组方法

方法

作用

示例

count

返回指定值的出现次数

(1, 2, 3, 1).count(1) → 2

index

返回指定值的索引位置

(1, 2, 3).index(2) → 1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tpl = (1, 2, 3, 1)
print(tpl.count(1))  # 输出 2
print(tpl.index(3))  # 输出 2
(3) 遍历元组
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tpl = ("apple", "banana", "cherry")
for fruit in tpl:
    print(fruit)
(4) 元组解包

元组可以快速解包,用于将元组的值赋给多个变量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tpl = (1, 2, 3)
a, b, c = tpl
print(a, b, c)  # 输出 1 2 3

四、序列的通用操作

1. 数学运算符

序列支持 +* 操作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print([1, 2] + [3, 4])  # 输出 [1, 2, 3, 4]
print([1, 2] * 2)       # 输出 [1, 2, 1, 2]
2. 成员判断

使用 innot in 检查元素是否在序列中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(3 in [1, 2, 3])  # 输出 True
3. Python 内置函数

以下内置函数常用于操作序列:

函数

功能

len()

返回序列的长度

max()

返回序列中的最大值

min()

返回序列中的最小值

sum()

返回序列中所有元素的总和

sorted()

返回排序后的新序列(不会修改原序列)

enumerate()

返回索引和值组成的可迭代对象

reversed()

返回序列的反转迭代器

all()

检查序列中的所有元素是否为真

any()

检查序列中是否至少有一个元素为真

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lst = [1, 2, 3, 4]
print(len(lst))          # 输出 4
print(max(lst))          # 输出 4
print(sum(lst))          # 输出 10
print(sorted(lst, reverse=True))  # 输出 [4, 3, 2, 1]

for index, value in enumerate(lst):
    print(index, value)  # 输出索引和值

print(all([True, 1, "hello"]))  # 输出 True
print(any([False, 0, ""]))      # 输出 False

总结

通过以上内容,您已经全面掌握了 Python 中字符串、列表和元组的定义、常用操作方法和技巧。Python 的序列类型提供了灵活且强大的功能,可以轻松应对数据操作的需求。无论是在开发中处理字符串、操作列表,还是使用元组保持数据的不可变性,这些知识都可以帮助您写出更高效的代码。希望本文内容能够为您的 Python 编程之旅增添助力!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
程序员初学机器学习的四种方式
本文由 伯乐在线 - XiaoxiaoLi 翻译自 Jason Brownlee 网址 http://machinelearningmastery.com/self-study-machine-learning-projects/ 学习机器学习有很多方法,大多数人选择从理论开始。 如果你是个程序员,那么你已经掌握了把问题拆分成相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术、类库和方法。这些对任何一个职业程序员来说都是重要的能力,现在它们也能用在初学机器学习上。 要想有效地学习机器学习你
机器学习AI算法工程
2018/03/12
9040
5种无需数学背景也可理解机器学习算法的技巧
在一种自顶向下的研究机器学习的方法中,理论应立足于何处?
Bon
2018/02/06
1.2K1
5种无需数学背景也可理解机器学习算法的技巧
机器学习的5种“兵法"
在研究机器学习中,理论在其整个自上而下方法中试用于哪里呢? 在传统的机器学习教学中,丰富的数学理论知识对于理解机器学习是至关重要的,我的机器学习教学方法通常是教你如何端对端解决问题以及传输结构。 所以此方法哪里要用到理论知识了呢? 在此帖中你将了解我们是如何理解机器学习中的“理论”一词。提示:全部与算法有关。 你会发现一旦你可以熟练解决问题以及传输结果后,你就欲罢不能地想要对机器学习有更深入的理解以及获得更好的结果,没人能拉得住你。 最后,你会发现可以通过应用标准数据集练习机器学习的5个技巧,从而进一步加深
CDA数据分析师
2018/02/05
6000
机器学习的5种“兵法"
【盘点】掌握机器学习的5条必由之路(附学习资料推荐)
【新智元导读】作者在本文提出一种5步入门并应用机器学习的方法。它不是传统的方法。传统的机器学习方法提倡从下往上学,先从理论和数学开始,然后是算法实现,最后让你去解决现实世界的问题。 作者提倡的掌握机器
新智元
2018/03/26
7670
【盘点】掌握机器学习的5条必由之路(附学习资料推荐)
从机器学习开始的4个步骤:初学者开始和实践的自上而下的策略
在这篇文章中,我向你展示了采用自顶向下的策略来入门应用机器学习的方法。我可以看到这个方法分为四个步骤。你应该对这些步骤他们感到熟悉,因为它可能跟你用来学习编程的自上而下的方法相同,亦即,掌握基础知识,大量练习,然后在你找到感觉、进入状态后再深入细节。
花落花飞去
2018/02/05
1.9K0
【机器学习】从零实现来理解机器学习算法
从零开始实现机器学习算法的好处 我推广了从零开始实现机器学习算法的观念。 我认为你可以学到很多关于算法是如何工作的。我也认为,作为一名开发者,它提供了一个学习用于机器学习的数学符号、描述以及直觉的桥梁。 在“从零开始实现机器学习算法的好处”这篇文章里,我已经讨论了从零实现机器学习算法的好处。 在那篇文章,我列出的好处如下: 你获取了知识; 它提供了一个起点; 拥有算法和代码的所属权。 在这篇文章中,我对如何利用现有的教程和书籍来缩短这个学习过程表达了一些个人看法。有一些用于初学的丰富资源,但也要堤防一些绊脚
陆勤_数据人网
2018/02/26
9400
【机器学习】从零实现来理解机器学习算法
机器学习自学指南
有很多途径来学习机器学习。有丰富的资源:有书籍,有课程可以参与,可以参加比赛,有大量供你使用的工具。在这篇文章中,我想围绕这些活动提出一些你机器学习之旅大致会有的阶段并在你程序员通往到机器学习大师之路上给出一个大概的顺序,以及在各个层次上有哪些可供你利用的资源
xixigiggling
2018/02/07
6140
程序员到机器学习工程师的飞跃
“我是一名软件开发工程师,阅读过一些关于机器学习方面的书籍和博客文章,也学习过一些在线的关于机器学习的公开课。但是,我仍然不知道怎么应用到工程实践中……”
fishexpert
2018/11/20
3960
机器学习 从入门到精通的学习方法
我将介绍5个“机器学习”的步骤,这五个步骤是非常规的。
花落花飞去
2018/02/11
2.6K0
机器学习 从入门到精通的学习方法
【干货】开发者如何掌握机器学习?传统方法可能都走了弯路
【新智元导读】作为一名开发者,怎么才能加入时下正火热的机器学习?本文作者Jason认为,传统的方法,包括从经典图书、博客文章或线上课程进行学习成效不大,甚至“错得离谱”。最好的方法其实是动手,不要停留在理论层面,动手实践才能高效的学习。在文章中,作者给出了自己的建议,特别强调机器学习实践过程中的细节,此外,他还推荐了一些可用的机器学习训练平台及数据库。 这篇文章要回答的问题是“我该如何开始机器学习”? “我是一个开发者。我读了一些关于机器学习的文章和书,也在Coursera上学习了机器学习课程。但我仍不知道
新智元
2018/03/23
5990
【干货】开发者如何掌握机器学习?传统方法可能都走了弯路
机器学习自学指南
你有许多方法和资源来学习机器学习:阅读书籍、学习课程、参加比赛和各种可用的工具。在这篇文章中,我想使这些活动更为体系化,并列出一个大致的顺序,以说明在普通程序员到机器学习高手的过程中所要着手什么。
2018/02/06
1.1K0
【越好奇,越强大】伯克利研究人员使用内在激励,教AI学会好奇
来源:Quanta Magazine 编译:Cecilia 【新智元导读】伯克利研究人员正在开发具有好奇心的AI。他们想创造有内在自我驱动能力的AI,而不是依赖人类指令的伪智能。相比外在的奖惩机制,建立方法让智能体拥有内在的好奇心更加重要。研究人员将让AI感到“吃惊”的指数,即对环境预测的误差,作为内在激励函数。吃惊越大,奖励越多,以此让AI迅速掌握环境。 你可能不记得第一次玩“超级马里奥兄弟”是什么感觉,但试着想像一下:蓝色的天空,棋盘石的地面,还有一个蹲着的红色男人在静静等待。他面向右方,你把他推到那个
新智元
2018/03/21
9300
【越好奇,越强大】伯克利研究人员使用内在激励,教AI学会好奇
机器学习工作职位需要的7项技能
机器学习经常与人工智能紧密相连,在不考虑显式编程的情况下,机器学习可以使计算机具备完成特定任务的能力,例如识别,诊断,规划,机器人控制和预测等。它往往聚焦于算法创新,即在面对新数据时,其自身能够发生演化。
IT阅读排行榜
2018/08/13
3040
机器学习工作职位需要的7项技能
机器学习经常与人工智能紧密相连,在不考虑显式编程的情况下,机器学习可以使计算机具备完成特定任务的能力,例如识别,诊断,规划,机器人控制和预测等。它往往聚焦于算法创新,即在面对新数据时,其自身能够发生演化。 在某种程度上,机器学习与数据挖掘很相似。它们都是通过数据来获取模式。然而,与人类可理解的数据提取方式不同—通常是按照数据挖掘应用的方式——机器学习主要是使用数据去提升程序本身的理解能力。机器学习程序能够在数据中检测出相关模式并相应的进行程序行为的调整。 现在,你是否准备去了解一些获得机器学习工作必备的技术
陆勤_数据人网
2018/02/26
5610
机器学习工作职位需要的7项技能
机器学习经常与人工智能紧密相连,在不考虑显式编程的情况下,机器学习可以使计算机具备完成特定任务的能力,例如识别,诊断,规划,机器人控制和预测等。它往往聚焦于算法创新,即在面对新数据时,其自身能够发生演化。 在某种程度上,机器学习与数据挖掘很相似。它们都是通过数据来获取模式。然而,与人类可理解的数据提取方式不同—通常是按照数据挖掘应用的方式——机器学习主要是使用数据去提升程序本身的理解能力。机器学习程序能够在数据中检测出相关模式并相应的进行程序行为的调整。 现在,你是否准备去了解一些获得机器学习工作必备的
CSDN技术头条
2018/02/09
7080
机器学习工作职位需要的7项技能
停止从头开始编写机器学习算法
从头开始实现算法是我看到初学者犯的最大的错误之一。
anthlu
2018/02/08
7920
停止从头开始编写机器学习算法
Kaggle冠军冲顶经验分享:怎样11步搞定机器学习竞赛?
最近,一名来自湖南长沙的小哥仅用15个月时间,就冲上了Kaggle用户排行榜的首位,他的ID是Bestfitting。
量子位
2018/07/24
1.1K0
Kaggle冠军冲顶经验分享:怎样11步搞定机器学习竞赛?
什么是机器学习?
输入“什么是机器学习?” 进入Google搜索将打开一个Pandora的论坛,学术研究和虚假信息框,而本文的目的是在我们的机器学习研究人员小组的直接帮助下简化机器学习的定义和理解。
陈哈哈
2020/07/06
5750
年龄不是上限!我只是按照自己的兴趣专注于机器学习
我只是按照自己的兴趣,尽可能多地专注于学习机器学习。年龄只是一个数字,何时开始以及可以实现多少没有上限。 Philip是Kaggle Competitions Grandmaster,他以17枚金牌名列第 47 位。
炼丹笔记
2022/10/27
3410
Weka机器学习平台的迷你课程
机器学习是个非常吸引人的研究领域,但是您怎么把它真正地应用到您自己的问题上呢?
Bon
2018/02/08
6K0
相关推荐
程序员初学机器学习的四种方式
更多 >
LV.1
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验