目录
一、序列简介
在 Python 中,序列是一种基本的数据结构类型,它是指可以存储多个值或元素的数据类型,并且这些元素是有序的,即每个元素都有一个对应的位置索引。常见的序列类型包括字符串(string)、列表(list)、元组(tuple)和范围(range)。
-
字符串(String)
- 字符串是由字符组成的序列。例如,
"Hello, World!"
就是一个字符串。可以通过索引来访问字符串中的单个字符,索引从 0 开始。例如,"Hello, World!"[0]
会返回'H'
。
- 字符串是由字符组成的序列。例如,
-
列表(List)
- 列表是一种可变的序列类型,可以包含不同类型的元素。例如,
[1, 2, 'three', [4, 5]]
是一个列表。列表可以进行添加、删除、修改等操作,这使得它在数据处理和存储方面非常灵活。
- 列表是一种可变的序列类型,可以包含不同类型的元素。例如,
-
元组(Tuple)
- 元组是不可变的序列类型,一旦创建,其元素就不能被修改。例如,
(1, 2, 3)
是一个元组。元组通常用于存储不希望被改变的数据组合,比如函数返回多个值时可以使用元组。
- 元组是不可变的序列类型,一旦创建,其元素就不能被修改。例如,
-
范围(Range)
- 范围是一种用于表示数字序列的类型,常用于循环中。例如,
range(5)
表示从 0 到 4 的整数序列,即[0, 1, 2, 3, 4]
(在 Python 3 中,range
对象本身不是列表,但可以像列表一样用于循环等操作)。
- 范围是一种用于表示数字序列的类型,常用于循环中。例如,
二、内置方法的魔法
-
索引和切片
- 索引:可以使用索引来访问序列中的单个元素。对于序列
s
,s[i]
表示访问序列中的第i
个元素(索引从 0 开始)。例如,对于列表my_list = [10, 20, 30, 40]
,my_list[2]
会返回30
。 - 切片:切片是一种获取序列子部分的强大方法。语法是
s[start:stop:step]
,其中start
是起始索引(包含),stop
是结束索引(不包含),step
是步长。例如,对于字符串my_str = "abcdef"
,my_str[1:4]
会返回"bcd"
,my_str[::2]
会返回"ace"
。
- 索引:可以使用索引来访问序列中的单个元素。对于序列
-
序列的长度、最大值和最小值
- 长度:可以使用
len()
函数来获取序列的长度。例如,对于列表my_list = [1, 2, 3]
,len(my_list)
会返回3
。这个函数适用于所有序列类型,包括字符串、元组等。 - 最大值和最小值:对于包含可比较元素的序列,可以使用
max()
和min()
函数来获取序列中的最大值和最小值。例如,对于列表my_num_list = [5, 3, 7, 1]
,max(my_num_list)
会返回7
,min(my_num_list)
会返回1
。如果序列中的元素不可比较(比如包含不同类型且无法直接比较的元素),会抛出类型错误。
- 长度:可以使用
-
序列的连接和重复
- 连接:对于相同类型的序列,可以使用
+
运算符来进行连接。例如,对于两个列表list1 = [1, 2]
和list2 = [3, 4]
,list1 + list2
会得到[1, 2, 3, 4]
。对于字符串,"Hello " + "World"
会得到"Hello World"
。 - 重复:可以使用
*
运算符来重复序列。例如,对于字符串my_str = "abc"
,my_str * 3
会得到"abcabcabc"
。对于列表my_list = [1, 2]
,my_list * 4
会得到[1, 2, 1, 2, 1, 2, 1, 2]
。
- 连接:对于相同类型的序列,可以使用
-
序列的成员资格检查
- 可以使用
in
和not in
关键字来检查一个元素是否在序列中。例如,对于列表my_list = [1, 2, 3]
,2 in my_list
会返回True
,4 not in my_list
会返回True
。这种检查在处理数据集合和过滤数据时非常有用,同样适用于字符串、元组等序列类型。例如,对于字符串my_str = "abc"
,'b' in my_str
会返回True
。
- 可以使用
-
可变序列的修改方法(以列表为例)
- 添加元素:
- append () 方法:用于在列表末尾添加一个元素。例如,
my_list = [1, 2]
,my_list.append(3)
后,my_list
会变成[1, 2, 3]
。 - extend () 方法:用于将一个序列中的所有元素添加到另一个列表的末尾。例如,
my_list1 = [1, 2]
,my_list2 = [3, 4]
,my_list1.extend(my_list2)
后,my_list1
会变成[1, 2, 3, 4]
。
- append () 方法:用于在列表末尾添加一个元素。例如,
- 插入元素:
insert()
方法可以在列表的指定位置插入一个元素。例如,my_list = [1, 3]
,my_list.insert(1, 2)
后,my_list
会变成[1, 2, 3]
(在索引为 1 的位置插入元素 2)。 - 删除元素:
- remove () 方法:用于删除列表中指定的元素。例如,
my_list = [1, 2, 3]
,my_list.remove(2)
后,my_list
会变成[1, 3]
。需要注意的是,如果要删除的元素不存在,会抛出ValueError
。 - pop () 方法:用于删除并返回列表中指定索引位置的元素。如果不指定索引,默认删除并返回最后一个元素。例如,
my_list = [1, 2, 3]
,element = my_list.pop(1)
后,my_list
会变成[1, 3]
,并且element
的值为2
。
- remove () 方法:用于删除列表中指定的元素。例如,
- 添加元素:
这些内置方法和操作使得在 Python 中处理序列变得非常高效和灵活,能够帮助开发者快速地完成各种数据处理任务。