Python序列类型
在Python编程中,一些基本的序列类型类包括列表、字符串、元组、Range等。这些数据结构保存项目的排序集合。它们允许我们通过索引和迭代访问其元素,还有其他序列类型对象,例如字节序列。
Python中的序列类型
Python中的序列类型分为两种:可变和不可变序列。
可变序列类型
这些序列可以在创建后更改,我们还可以修改元素、添加新元素和删除现有元素。
- 列表:列表是一个可变的、有序的项目集合。
-
字节数组:一个可变的字节序列,用于处理二进制数据。
- 数组:与列表类似的项目集合,但针对数值运算和存储相同数据类型的元素进行了优化。
示例
import array # 1.List example # creating list my_list = [10, 20, 30, 40, 50] # Appending element my_list.append(60) print(my_list) # Removing element my_list.remove(10) print(my_list) # 2.Byte Array example # Creating byte array my_byte_array = bytearray([15, 16, 17, 18]) # Modifying a byte my_byte_array[1] = 19 print(my_byte_array) # Removing a byte my_byte_array.pop(3) print(my_byte_array) # 3.Array example # Creating array of integers my_array = array.array('i', [21, 22, 23, 24, 25]) # Modifying element my_array[2] = 26 print(my_array) my_array.append(26) print(my_array)
输出
[10, 20, 30, 40, 50, 60] [20, 30, 40, 50, 60] bytearray(b'\x0f\x13\x11\x12') bytearray(b'\x0f\x13\x11') array('i', [21, 22, 26, 24, 25]) array('i', [21, 22, 26, 24, 25, 26])
不可变序列类型
分类为不可变的序列在其创建后元素不可更改。一些不可变序列类型如下所示。
- 元组:元组被称为有序且不可变的对象集合。
- 字符串:用单引号('')或双引号("")分隔的字符序列集合称为字符串。
- 整数:整数定义为整数,包括正数和负数,是一种不可变的数据类型。
示例
# 1.Tuple example # Creating a tuple my_tuple = (10, 20, 30, 40, 50) # Accessing element print(my_tuple[3]) # Tuples Concatenation to create a new tuple new_tuple = my_tuple + (60, 70) print("New Tuple:", new_tuple) # 2.String Example # Creating a string my_string = "Tutorials Point" # Accessing a character print(my_string[4]) # Strings can be concatenated to create a new string new_string = my_string + " python" print("String:", new_string) # 3.Integer Example # Creating an integer my_integer = 30 # Performing operation to create new integer new_integer = my_integer + 5 print("New Integer:", new_integer)
40 New Tuple: (10, 20, 30, 40, 50, 60, 70) r String: Tutorials Point python New Integer: 35
成员运算符
在Python中,成员运算符(in, not in) 用于检查对象中是否存在序列。
一些常见的内置方法和操作,对于序列类型对象,可用于可变和不可变序列,如下所示
操作 | 语法 | 描述 |
---|---|---|
in | x in seq | 如果x在序列seq中找到,则返回True,否则返回False |
not in | x not in seq | 如果x在序列seq中找到,则返回False,否则返回True |
示例
lang = ['java', 'python', 'c++'] print('python' in lang) print('java' not in lang)
输出
True False
连接和重复
Python中的连接和重复受可变(列表)和不可变(元组、字符串)序列数据类型支持,但range对象等序列类型不支持此连接和重复操作。
操作 | 语法 | 描述 |
---|---|---|
连接 | sequence1 + sequence2 | 连接(组合)两个序列。 |
重复 | sequence * n | 重复原始序列,直到给定次数(n)。 |
示例
list1 = [10, 20, 30] list2 = [40, 50] #Concatenation (+) print(list1 + list2) #Repetition (*) print(list1 * 3)
输出
[10, 20, 30, 40, 50] [10, 20, 30, 10, 20, 30, 10, 20, 30]
索引和切片
索引是指使用其索引访问序列中存在的元素的过程。Python序列中第一个元素的索引为0,第二个元素的索引或位置为1。
通过其起始和结束索引(起始、停止和步长值)访问序列的子序列称为切片。
操作 | 语法 | 描述 |
---|---|---|
索引 | sequence[index] | 按其位置访问序列中的元素。 |
切片 | sequence[start : stop : step] | 通过起始、停止和步长值访问序列的子序列。 |
示例
my_list = ['a', 'b', 'c', 'd','e'] #indexing print(my_list[2]) #slicing (start,stop) print(my_list[1:4]) #(start,stop,step) #Slices the sequence from index i to j with a step k. numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(numbers[1:8:2])
输出
c ['b', 'c', 'd'] [1, 3, 5, 7]
长度、搜索和计数
我们可以使用内置的len()函数确定序列的长度。它可以应用于各种类型的序列,例如字符串、列表、元组等。
可以搜索序列中的特定元素,具体取决于序列的类型(列表、字符串、元组)。
Python的count()函数允许我们计算序列中出现的元素的次数。
操作 | 语法 | 描述 |
---|---|---|
长度 | len(sequence) | 确定序列中元素的数量。 |
搜索 | sequence.index(item) | 查找序列中元素的第一次出现。 |
计数 | sequence.count(item) | 计算元素在序列中出现的次数。 |
示例
my_list = [1, 5, 4, 5, 3, 20, 12, 5, 43] #Finding Length print('length of sequence :',len(my_list)) #Searching an element print('Element 12 at index :',my_list.index(12)) #counting the occurrences of an element print('Num of times element 5 occured :',my_list.count(5))
输出
length of sequence : 9 Element 12 at index : 6 Num of times element 5 occured : 3
追加、弹出、删除
在Python中,追加、弹出和删除函数通常与可变序列类型一起使用,例如数组、列表和字节数组。
-
append()方法将向现有列表的末尾添加一个元素。
-
pop()方法删除并返回列表中所需位置的元素。
-
remove()方法将删除序列中元素的第一次出现。
不可变序列类型(如元组、字符串和整数)不支持这些操作,因为它们在创建后无法更改。
操作 | 语法 | 描述 |
---|---|---|
追加 | list.append(element) | 在列表末尾添加单个元素。 |
弹出 | element = list.pop([index]) | 删除并返回序列中的元素。 |
删除 | list.remove(value) | 删除序列中元素的第一次出现。 |
示例
my_list = [10, 20, 30, 40, 50] #append element my_list.append(60) print(my_list) #popping element my_list.pop(1) print(my_list) #remove element my_list.remove(40) print(my_list)
输出
[10, 20, 30, 40, 50, 60] [10, 30, 40, 50, 60] [10, 30, 50, 60]
广告