前言

在Python编程世界中,列表和元组是两个最常用的数据结构之一。无论是初学者还是经验丰富的开发者,对于这两个数据类型的掌握都至关重要。

列表和元组都是用于存储多个值的容器,但它们在性质和特性上有所不同。列表是可变的,可以随意修改、添加或删除其中的元素,而元组是不可变的,一旦创建便无法更改。这使得它们在不同的场景和任务中有着各自的用途。

本博客将带你深入了解Python列表和元组的魅力与应用。我们将探索它们的基本操作,如创建、访问和切片操作,以及高级技巧,如列表和元组的嵌套、排序和列表解析等。我们还将比较它们的性能特点,以及何时选择使用列表或元组。

通过阅读本博客,你将对列表和元组有一个全面的理解,并能够灵活运用它们解决实际问题。无论你是新手还是有经验的Python开发者,这里都将为你带来有价值的知识和技巧。

准备好了吗?让我们一起踏上探索Python列表和元组之旅吧!

列表

什么是 python 列表

Python中的列表是一种有序的、可变的数据类型。它可以存储任意数量的元素,并且这些元素可以是不同的数据类型,如整数、浮点数、字符串等。

列表使用方括号 [] 来创建,其中的元素可以通过逗号进行分隔。

message = [1,2,'zhangsan',13.14]print(type(message))

1)使用列表序列[n]来访问列表中的元素

message = [1,2,'zhangsan',13.14]print(message[0])print(message[2])


2)列表中的元素可修改

message = [1,2,'zhangsan',13.14]message[2] = 'lisi'print(message)

列表中常用的方法

index() 返回指定序列的下标

message = [1,2,'zhangsan',13.14]print(message.index(2))print(message.index(13.14))

当列中中部存在待查找的数据时,会报错

message = [1,2,'zhangsan',13.14]print(message.index('lisi'))

count() 返回指定数据在列表中出现的次数

message = [1,2,'zhangsan',13.14,1,2,1]print(message.count('zhangsan'))print(message.count(1))print(message.count(2))print(message.count('lisi'))

len() 返回列表的长度

message = [1,2,'zhangsan',13.14,1,2,1]print(len(message))

in 判断指定数据是否在列表中

message = [1,2,'zhangsan',13.14,1,2,1]print('zhangsan' in message)print('lisi' in message)

判断指定数据是否不在列表中

message = [1,2,'zhangsan',13.14,1,2,1]print('zhangsan' not in message)print('lisi' not in message)

append() 列表结尾追加数据

message = [1,2,'zhangsan',13.14,1,2,1]print(message)message.append('lisi')print(message)


列表不仅可以追加整数、浮点数、字符串,还可以追加列表

message = [1,2,'zhangsan',13.14,1,2,1]print(message)message1 = ['wangwu','zhaoliu']message.append(message1)print(message)print(message[7])

extend() 列表结尾追加数据

append()函数 和 extend()函数都可以在列表结尾追加数据,但是extend与append不同的是,它会将这个数据拆分然后再追加到列表结尾。

message = [1,2,3,'zhangsan',13.14]message.extend('lisi')print(message)

message = [1,2,3,'zhangsan',13.14]message1 = ['lisi','wangwu']message.extend(message1)print(message)

insert() 指定位置增加数据

message = [1,2,3,'zhangsan',13.14]message.insert(1,'lisi')print(message)

如果指定位置的下标为负数怎么办呢?我们都知道列表最后一个数据的下标也可以是-1,那么当指定位置的下标为负数时,表明从列表的末尾开始添加。

message = [1,2,3,'zhangsan',13.14]message.insert(-1,'lisi')message.insert(-3,'wangwu')print(message)

当指定位置的下标超过 列表长度 – 1 了该怎么办?他会在列表的结尾增加数据。

message = [1,2,3,'zhangsan',13.14]message.insert(100,'lisi')print(message)

del 删除指定位置的数据

当使用 del 列表序列 时,会将整个列表都删除。

message = [1,2,3,'zhangsan',13.14]del messageprint(message)


使用 del 列表序列[n] 删除列表中的指定数据

message = [1,2,3,'zhangsan',13.14]del message[3]print(message)

pop() 删除元素

pop() 函数也是删除列表的元素,但是它与 del函数 不同的是:pop() 函数默认删除列表的最后一个元素,并且会返回删除的元素。

message = [1,2,3,'zhangsan',13.14]tmp = message.pop()print(message)print(tmp)

列表序列.pop(下标) 也可以删除指定下标的数据。

message = [1,2,3,'zhangsan',13.14]tmp = message.pop(3)print(message)print(tmp)

‍️remove() 移除列表的指定数据

message = [1,2,3,'zhangsan',13.14]message.remove('zhangsan')print(message)

这里删除数据可以根据给出的是需要删除的下标还是需要删除的数据以及删除的位置来选择使用 del函数、pop函数、remove函数

clear() 清除列表

message = [1,2,3,'zhangsan',13.14]message.clear()print(message)

reverse() 逆置列表

message = [1,2,3,'zhangsan',13.14]message.reverse()print(message)

sort() 将列表排序

列表序列.sort(key = None , reverse = False) ,在这里我们先不讨论 key 的含义,
reverse = False 表明是按升序排列(默认),reverse = True 表明按降序排列

message = [1,2,3,68,13.14]message.sort(reverse = False)print(message)

message = [1,2,3,68,13.14]message.sort(reverse = True)print(message)


当我们使用sort函数的时候,列表中不能同时存在字符串和整数或者浮点数,但是可以只存在字符串类型,当列表中只有字符串类型时,按字典顺序排列

message = [1,2,3,'zhangsan',13.14]message.sort()print(message)

message = ['zhangsan','lisi','wangwu']message.sort()print(message)

copy() 复制列表

message = [1,2,3,'zhangsan',13.14]message1 = message.copy()print(message1)

使用循环遍历列表

while循环遍历列表

message = [1,2,3,'zhangsan',13.14]i = 0while i < len(message):# len() 函数求列表长度print(message[i],end = '\t')i += 1

for循环遍历列表

message = [1,2,3,'zhangsan',13.14]for i in message:print(i,end = '\t')

列表的嵌套

列表中可以包含各种数据类型,当然也可以包含列表。

message = [1,2,3,'zhangsan',['lisi','wangwu']]print(message)print(type(message))


如果我们想要访问列表中的列表中的数据(哈哈哈,有点绕啊),可以使用
列表序列[列表中的列表所对应的下标][ n ]

message = [1,2,3,'zhangsan',['lisi','wangwu']]print(message[4][0])print(message[4][1])

元组

什么是 python 元组

Python中的元组是一种有序的、不可变的数据类型。它类似于列表,但与列表不同的是,元组的元素是不可修改的。

元组使用圆括号 () 来创建,其中的元素可以通过逗号进行分隔。

message = (1,2,3,'zhangsan',13.14)print(type(message))


**元组中需要注意的是:当元组中只有一个数据的时候,那个数据后面要加上
逗号( , ), 因为如果不加逗号的话,那么这个数据是什么类型,这个变量就会是什么类型。

message = (1)print(type(message))

message = (1,)print(type(message))


元组中的数据不能随意更改

message = (1,2,3,'zhangsan',13.14)message[0] = 8print(message)


如果要想更改元组中的数据,只能重新整体赋值

message = (1,2,3,'zhangsan',13.14)message = (8,2,3,'zhangsan',13.14)print(message)


但是如果元组中存在列表的话,那么这个列表是可更改的(但是不建议更改)

message = (1,2,3,'zhangsan',13.14,['lisi','wangwu'])message[5][0] = 'zhaoliu'print(message)


我们要尽量遵守元组数据不可更改的原则。

元组常见操作

index() 返回指定数据的下标

如果指定数据存在,则返回指定数据的下标,如果不存在,则报错。

message = (1,2,3,'zhangsan',13.14)print(message.index('zhangsan'))# 3

count() 返回指定数据出现的次数

message = (1,2,3,'zhangsan',13.14)print(message.count('zhangsan'))# 1print(message.count('lisi'))# 0

len() 返回元组的长度

message = (1,2,3,'zhangsan',13.14)print(len(message))# 5

感谢大家的观看哦,如有错误,欢迎指正,如果大家觉得不错的话,记得点个赞哦,也欢迎大家订阅我的 python学习专栏