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]

更新于:2024年9月10日

7000+ 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告