首页 > 编程语言 >Python数据结构——序列(超详细版)

Python数据结构——序列(超详细版)

时间:2024-06-11 10:02:05浏览次数:27  
标签:11 索引 Python 55 44 print 66 序列 数据结构

在计算机程序中会有很多数据,使用数据结构可以管理这些数据,Python中的数据结构主要有序列、集合和字典。常见的数据结构有:数组(array)、集合(set)、列表(list)、队列(queue)、链表(linkedlist)、树(tree)、堆(heap)、栈(stack)和字典(dictionary)。

注意:

Python中并没有数组结构,因为数组要求元素类型是一致的。而Python作为动态类型语言,不强制声明变量的数据类型,也不强制检查元素的数据类型,因此不能保证元素的数据类型一致。

序列

序列是一种可迭代的(指它的成员能返回一次的对象)、元素有序、可以重复出现的数据结构。序列可以通过索引访问元素,其包括的结构有列表、字符串(str)、元组(tuple)、范围(range)和字节序列(bytes) ,序列可进行的操作有索引、切片、加和乘。

索引操作

序列中第一个元素的索引是0,其他元素的索引是第一个元素的偏移量,有正偏移量(正值索引)和负偏移量(负值索引)。正值索引的最后一个元素索引是“序列长度-1”,负值索引的最后一个元素索引是“-1”。如 World 字符串的正值和负值索引。

索引01234
字符串World

World字符串的正值索引

索引-5-4-3-2-1
字符串World

 World字符串的负值索引

 

序列中的元素是通过索引下标访问的 

输入下面代码:

a = 'Python'
print(a[0])
print(a[1])
print(a[2])
print(a[3])
print(a[4])
print(a[5])
print(a[-1])
print(a[-6])

代码运行结果:

P
y
t
h
o
n
n
P

 序列常用函数

函数名描述
len()返回序列的长度
max()返回ASCII码最大字符
min()返回ASCII码最小字符
ord()返回字符的ASCII码

序列的加和乘

+ 可以将两个序列连接起来,* 可以将序列重复多次

序列切片

序列的切片就是从序列中切分出小的子序列。切片使用切片运算符 [start:end:step] ,其中start表示开始索引,end表示结束索引,step表示步长;步长可为正整数或者负整数。

(下次元素索引 = 当次元素索引 + 步长)

注意:切下的切片包括start位置元素,但不包括end位置元素

输入下面代码:

a = 'Python'
print(a[0:5:2])
print(a[1:4])        #省略了步长
print(a[:3])        #省略了开始索引,默认开始索引为0
print(a[1:])        #省略了结束索引,默认结束索引是序列长度
print(a[:])         #省略了开始和结束索引
print(a[1:-1])      #使用了负值索引
print(a[::-1])      #结果为原始字符串的倒置

代码运行结果:

Pto
yth
Pyt
ython
Python
ytho
nohtyP

元组

元组是一种不可变序列,一旦创建就不可修改

创建元组

方法一:使用 “,” 分隔元素

方法二:使用tuple()函数

输入下面代码:

a = 11,22,33,44,55,66
print(a)
c = (11,22,33,44,55,66)
print(c)
b = tuple([66,55,44,'hello','python'])
print(b)
d = ()    #创建一个空元组
e = (21,)    #创建只有一个元素的元组,其中逗号不能省略,若省略,则是int类型

代码运行结果:

(11, 22, 33, 44, 55, 66)
(11, 22, 33, 44, 55, 66)
(66, 55, 44, 'hello', 'python')

访问元组

元组作为序列可以通过下标索引访问其元素,也可以对其进行切片,此外还可以进行拆包操作,就是将元组的元素取出来赋值给不同的变量。

输入下面代码:

a = (11,22,33,44,55,66)
str1,str2,str3,str4,str5,str6=a
print(str1)
print(str2)
print(str3)
print(str4)
print(str5)
print(str6)
str1,str2,*n = a    #接收变量个数可以小于等于元组个数,*n表示将剩下元素作为一个列表赋值给变量n
print(n)
print(type(n))

代码运行结果:

11
22
33
44
55
66
[33, 44, 55, 66]
<class 'list'>

 遍历元组

一般使用for循环,enumerate()函数可以获得元组对象,该元组对象有两个元素,第一个元素是索引,第二个元素是数值

输入下面代码:

a = (11,22,33,44,55,66)
for i,item in enumerate(a):
    print("{0} - {1}".format(i,item))

代码执行结果:

0 - 11
1 - 22
2 - 33
3 - 44
4 - 55
5 - 66

列表

列表是一种可变序列

列表创建

方法一:使用中括号 [] 将元素括起来,元素之间用逗号分隔

方法二:使用list()函数

输入下面代码:

a = [11,22,33,44,55,66]     #中括号不能省略,如果省略就变成了元组
print(a)
b = list([66,55,44,'hello','python'])
print(b)
c = []    #创建一个空列表
print(type(c))
d = [11,]    #创建一个元素的列表,无论元组还是列表,最后一个元素的逗号可以省略,也可以不省略
print(d)

代码执行结果:

[11, 22, 33, 44, 55, 66]
[66, 55, 44, 'hello', 'python']
<class 'list'>
[11]

追加元素

列表中追加单个元素可以使用append()方法,如果想追加另一列表,可以使用 + 运算符或者extend()方法

输入下面代码:

a = [11,22,33,44,55,66]
b = list([66,55,44,'hello','python'])
a.append(1)       #追加单个元素
print(a)
b.extend(a)       #追加列表
print(b)
c = [2,3]
b +=c             #追加列表
print(b)

代码执行结果:

[11, 22, 33, 44, 55, 66, 1]
[66, 55, 44, 'hello', 'python', 11, 22, 33, 44, 55, 66, 1]
[66, 55, 44, 'hello', 'python', 11, 22, 33, 44, 55, 66, 1, 2, 3]

插入元素

使用insert()方法,其中输入两个参数,参数1为插入元素的索引,参数2为插入的元素

输入下面代码:

a = [11,22,33,44,55,66]
a.insert(2,'我是插入在原来的索引位置2的新元素')
print(a)

代码执行结果:

[11, 22, '我是插入在原来的索引位置2的新元素', 33, 44, 55, 66]

替换元素

 通过列表下标将索引元素放在 = 的左边

a = [11,22,33,44,55,66]
a.insert(2,'我是插入在原来的索引位置2的新元素')
print(a)
print("执行替换元素操作")
a[2] = 30
print(a)

代码执行结果:

[11, 22, '我是插入在原来的索引位置2的新元素', 33, 44, 55, 66]
执行替换元素操作
[11, 22, 30, 33, 44, 55, 66]

删除元素

方法一:使用remove()方法,从左到右查找列表中的元素,如果匹配则删除,若有多个匹配,则删除第一个;若没有找到则会抛出错误

方法二:使用pop()方法,该方法在删除元素后会返回成功删除的元素

输入下面代码:

a = [11,22,33,44,55,66]
a.insert(2,'我是插入在原来的索引位置2的新元素')
print(a)
a.remove('我是插入在原来的索引位置2的新元素')
print(a)
b = a.pop(0)
print(b)
print(a)

代码执行结果:

[11, 22, '我是插入在原来的索引位置2的新元素', 33, 44, 55, 66]
[11, 22, 33, 44, 55, 66]
11
[22, 33, 44, 55, 66]

 其他列表常用方法

方法名描述
reverse()倒置列表
copy()复制列表
clear()清除列表中所有元素
index(x,[i],[j])返回查找x第一次出现的索引,i是开始查找索引,j是结束查找索引
count(x)返回x出现的次数,元组和字符串也可以用该方法

列表推导式

它可以将一种数据结构作为输入,经过过滤、计算等处理,最后输出另一种数据结构。根据结构的不同可以分为列表推导式、集合推导式和字典推导式;下面为列表推导式的例子

输入下面代码:

a_list = [x**3 for x in range(1,10) if x%2 == 0]
#x**2 为输出表达式,for x in range(1,10) 中 x 为元素变量,range(10) 为输入序列,if x%2 == 0 为条件表达式
print(a_list)

代码输出结果:

[8, 64, 216, 512]

其中输入的条件表达式也可以有多个条件,如:找出0~66中可以被5整数的偶数数列可以通过下面代码实现:

a_list = [x for x in range(66) if x%2 == 0 if x%5 == 0]
print(a_list)

代码输出结果:

[0, 10, 20, 30, 40, 50, 60]

标签:11,索引,Python,55,44,print,66,序列,数据结构
From: https://blog.csdn.net/2302_76708905/article/details/139575169

相关文章

  • “深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境”学习
    在CentOS7上安装Python3.10和PyTorch2.3.0时,为什么要首先升级OpenSSL?在CentOS7上,默认安装的OpenSSL版本可能不支持Python3.10所需的最新加密标准。因此,为了确保Python3.10能够正常工作,需要先升级OpenSSL到支持这些标准的版本。升级OpenSSL的具体步骤是什么?升级Ope......
  • Python 变量
    Python变量变量的定义变量是编程中不可或缺的一部分,特别是在Python中,它们扮演着存储和引用数据的重要角色。变量可以被视为命名容器,用于存储不同类型的数据,如字符串、数字、列表等。这些变量允许我们通过其独特的名字在程序中轻松访问和修改数据。在Python中,变量的创建实际上......
  • 浙大版PTA python程序设计 第四章题目及知识点解析整理
    第四章--1--在循环中continue语句的作用是(结束本次循环)退出循环的当前迭代  √ 带有else子句的循环如果因为执行了break语句而退出的话,会执行else子句的代码。×因为break是跳出整个循环,所以如果循环体内有else子句,且循环是通过break退出的,那么else子句中的代码也不......
  • python: 压缩图片
    pipinstallimageioimage=imageio.imread("1.jpg")imageio.imwrite("output_image.webp",image,"WEBP") #代码示例:使用Python的Keras库构建Autoencoder模型fromkeras.modelsimportModelfromkeras.layersimportInput,Den......
  • Linux下安装python3.10.12环境
    安装python3编程环境检查是否安装python3python3-V安装python3依赖sudoyum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-devel下载python3资源包......
  • 【Python核心数据结构探秘】:元组与字典的完美协奏曲
    文章目录......
  • 保研复习——数据结构篇
    前言:本笔记是对《王道数据结构》中各章节涉及的基础知识进行整理。本笔记主要用以应对夏令营面试中可能会问到的数据结构方面的问题,比较泛泛而谈,如果您对这些内容感兴趣,建议参考原书。大佬可自行绕路材料来源:王道2025年《数据结构考研复习指导》https://pan.baidu.com/s......
  • 【python】时间和日期
    1.datetime模块概述Python的datetime模块提供了用于处理日期和时间的类和函数。主要类包括datetime、date、time、timedelta和tzinfo(与时区有关)。2.主要类及其功能2.1datetime类datetime类是最常用的类之一,它表示一个具体的日期和时间(年、月、日、时、分、秒、微秒)。......
  • 【python】os模块详解
    Python的os模块提供了与操作系统交互的功能。它提供了很多函数,用于读取或修改系统目录和文件、运行系统命令、处理系统环境变量等。以下是一些常用的os模块函数及其简要说明:一、目录和文件操作获取当前工作目录os.getcwd()importoscurrent_dir=os.getcwd()pr......
  • Python异常处理的几种方法
    Python的异常处理语句主要包括以下几个关键字:try/excepttry块包含可能会引发异常的代码。except块则包含用于处理这些异常的代码。try:#尝试执行的代码块result=10/0exceptZeroDivisionError:#当发生ZeroDivisionError异常时执行的代码块......