下面是Python结构化一维序列使用方法的完整攻略。
一、Python结构化一维序列概述
Python结构化一维序列是指由相同数据类型元素组成的一组有序数据类型,例如列表、元组、NumPy数组等,它们可以通过下标进行访问和操作。这些数据结构相较于一般的列表,具有更加严格的数据类型和更高效的数据操作方式。
二、Python列表
Python列表是最常用的一维序列类型,它由一组有序的元素组成,每个元素可以是任意数据类型。列表用方括号[]
定义,元素之间用逗号,
隔开。
1. 基本操作
- 创建一个列表
a_list = [1, 2, 3, 4, 5]
- 获取列表长度
len(a_list) # 输出:5
- 访问列表元素
a_list[0] # 输出:1
- 列表切片
a_list[1:4] # 输出:[2, 3, 4]
- 列表元素的修改、添加和删除
# 修改元素
a_list[0] = 0
print(a_list) # 输出:[0, 2, 3, 4, 5]
# 添加元素
a_list.append(6)
print(a_list) # 输出:[0, 2, 3, 4, 5, 6]
# 删除元素
del a_list[0]
print(a_list) # 输出:[2, 3, 4, 5, 6]
- 列表操作符
a_list + [7, 8] # 输出:[2, 3, 4, 5, 6, 7, 8]
a_list * 2 # 输出:[2, 3, 4, 5, 6, 2, 3, 4, 5, 6]
- 判断某个元素是否在列表中
2 in a_list # 输出:True
10 in a_list # 输出:False
2. 高级操作
- 列表推导式
a_list = [x ** 2 for x in range(1, 6)]
print(a_list) # 输出:[1, 4, 9, 16, 25]
- 列表排序
a_list.sort()
print(a_list) # 输出:[1, 4, 9, 16, 25]
a_list.sort(reverse=True)
print(a_list) # 输出:[25, 16, 9, 4, 1]
- 列表反转
a_list.reverse()
print(a_list) # 输出:[5, 4, 3, 2, 1]
三、Python元组
Python元组是不可变的一维有序序列,元组的元素可以是任意数据类型。元组用小括号()
定义,元素之间用逗号,
隔开。
1. 基本操作
- 创建一个元组
a_tuple = (1, 2, 3, 4, 5)
- 获取元组长度
len(a_tuple) # 输出:5
- 访问元组元素
a_tuple[0] # 输出:1
- 元组切片
a_tuple[1:4] # 输出:(2, 3, 4)
- 元组操作符
a_tuple + (6, 7) # 输出:(1, 2, 3, 4, 5, 6, 7)
a_tuple * 2 # 输出:(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
- 判断某个元素是否在元组中
2 in a_tuple # 输出:True
10 in a_tuple # 输出:False
2. 高级操作
- 元组拆封
a, b, c = (1, 2, 3)
print(a, b, c) # 输出:1 2 3
- 元组排序
sorted_tuple = sorted(a_tuple)
print(sorted_tuple) # 输出:[1, 2, 3, 4, 5]
# 对元组中的元素指定排序规则
string_tuple = ('abc', 'def', 'aa')
sorted_string = sorted(string_tuple, key=len)
print(sorted_string) # 输出:['aa', 'abc', 'def']
四、Python NumPy数组
NumPy数组是用于数值计算的重要数据结构,它是由相同数据类型元素组成的多维数组,可以进行向量化运算。这里仅介绍其中的一维数组。
1. 基本操作
- 创建一个NumPy数组
import numpy as np
a_array = np.array([1, 2, 3, 4, 5])
- 获取数组长度
len(a_array) # 输出:5
- 访问数组元素
a_array[0] # 输出:1
- 数组切片
a_array[1:4] # 输出:array([2, 3, 4])
- 数组元素的修改、添加和删除
# 修改元素
a_array[0] = 0
print(a_array) # 输出:array([0, 2, 3, 4, 5])
# 添加元素
np.append(a_array, [6])
print(a_array) # 输出:array([0, 2, 3, 4, 5, 6])
# 删除元素
np.delete(a_array, [0])
print(a_array) # 输出:array([0, 2, 3, 4, 5])
- 数组操作符
a_array + np.array([6, 7]) # 输出:array([ 6, 9, 10, 11, 12])
a_array * np.array([2, 3, 4, 5, 6]) # 输出:array([ 0, 6, 12, 20, 30])
- 判断某个元素是否在数组中
2 in a_array # 输出:True
10 in a_array # 输出:False
2. 高级操作
- 数组索引和切片
# 利用索引和切片获取数组中的部分元素
a_list = [1, 2, 3, 4, 5, 6, 7]
a_array = np.array(a_list)
print(a_array[a_array > 3]) # 输出:array([4, 5, 6, 7])
print(a_array[-3:]) # 输出:array([5, 6, 7])
- 数组排序
sorted_array = np.sort(a_array)
print(sorted_array) # 输出:array([1, 2, 3, 4, 5, 6, 7])
# 对数组中的元素指定排序规则
string_array = np.array(['abc', 'def', 'aa'])
sorted_string = np.sort(string_array, key=len)
print(sorted_string) # 输出:array(['aa', 'abc', 'def'], dtype='<U3')
以上是Python结构化一维序列使用方法的详细攻略,希望对您有所帮助。