Python基础第五课——列表和元组

系列文章目录

Python基础学习第一课——python环境的配置及vscode的安装汉化

Python基础第二课——基础知识

Python基础第三课——条件语句和循环语句

Python基础第四课——字符串的相关操作

Python基础第五课——列表和元组(本篇文章内容)


目录

​编辑

系列文章目录

前言

一、列表

1、列表的定义

2、列表元素的访问

3、列表切片

4、修改列表元素

 5、列表的相关操作函数

5.1添加元素

5.2删除元素 

5.3其他方法

5.3.1排序

5.3.2反转元素

 5.3.3统计元素的频次

 5.3.4将元素添加到列表末尾

二、元组

1、元组的定义

 2、访问元组元素

 3、元组切片

4、元组的不可变性

5、元组的更多操作

6、元组的用途

6.1作为多个返回值的容器

6.2保护数据不被修改 

6.3作为字典的键

总结



前言

上一篇文章中,我们讲了python中有关字符串的相关操作,这篇文章呢来讲解在python中列表、元组的相关知识。在系列文章目录中列出了我python专栏中的其他文章,如果感兴趣的话呢,可以订阅我的专栏或者在我的主页查看前面发布的文章。


一、列表

1、列表的定义

在python中,列表是一种有序的可变序列,可以包含不同类型的元素,包括整型,浮点型,字符串,布尔型等等,我们可以使用方括号[]来定义一个列表。

a_list = [1,2,3,"four",True]
#这就是一个混合列表,里面存放了整数型数据,字符串数据和布尔值

2、列表元素的访问

可以通过索引来访问列表中的元素。索引从 0 开始,(这里有些类似于C语言中的数组)所以要访问第一个元素,使用索引 0,第二个元素使用索引 1,以此类推。例如:

a_list = [1, 2, 3, "four", True]
print(a_list[0])  # 输出1
print(a_list[3])  # 输出"four"

除了上面说的这种索引方式,我们还可以用负索引从列表末尾来访问元素,例如,索引 -1 表示最后一个元素,索引 -2 表示倒数第二个元素。

a_list = [1, 2, 3, "four", True]
print(a_list[-1])  # 输出True
print(a_list[-3])  # 输出3

 在网上找了一个列表索引的逻辑图,可以看看辅助理解:

列表的遍历:

列表的遍历就是把列表中所有的元素都获取一遍,我们可以使用循环的方式来获取:

l = [1,2,3,4,5]
for i in l:
    print(i)
#输出结果为:
#1
#2
#3
#4
#5
#如果想控制输出结果在一行,我们可以这样输出
for i in l:
    print(i,end=" ")
#输出结果为:1 2 3 4 5

3、列表切片

列表切片跟上一篇文章中我们讲到的字符串的切片操作差不多,语法一样都是[start:stop:step],那在这里就不再细讲了,如果对切片操作还有疑问的话可以去我的主页看一看我的上一篇文章,这里直接给出使用示例:

a_list = [1, 2, 3, 4, 5]
print(a_list[1:4])  # 输出[2, 3, 4]
print(a_list[::2])  # 输出[1, 3, 5]
print(a_list[::-1])  # 反转列表,输出[5, 4, 3, 2, 1]

4、修改列表元素

列表是一个可变的序列,我们可以利用索引来对列表中的元素进行修改,修改方式也非常简单,类似于C语言数组,下面直接给出代码示例:

a_list = [1, 2, 3, 'four', True]
a_list[3] = 'five'
a_list[0] = 0
print(a_list)
#我们将列表中的第3个元素替换为了'five',第0个元素替换为了'0'
#输出结果为:[0, 2, 3, 'five', True]

 5、列表的相关操作函数

5.1添加元素

append()方法用于在列表末尾添加一个元素。例如:

my_list = [1, 2, 3]
my_list.append(4)
print(my_list) 

该代码输出结果为: 

insert()方法用于在指定位置插入一个元素。它接受两个参数,第一个参数是插入位置的索引,第二个参数是要插入的元素。例如:

my_list = [1, 2, 3]
my_list.insert(1, "new")
print(my_list)  # 输出[1, 'new', 2, 3]
my_list.insert(0,"a")
print(my_list)  # 输出['a', 1, 'new', 2, 3]

5.2删除元素 

remove()方法用于删除列表中指定的元素。如果列表中有多个相同的元素,它只会删除第一个元素

例如:

my_list = [1, 2, 3, 2]
my_list.remove(2)
print(my_list)  # 输出结果为:[1, 3, 2]

如果我们想删除所有列表中的指定元素呢,我们可以通过循环的方式来实现,例如:

my_list = [1, 2, 3, 2]
for i in my_list:
    my_list.remove(2)
print(my_list)

 这样的输出结果为:[1, 3],删除了这个列表中所有的2元素

pop()方法用于删除并返回指定索引位置的元素。如果不提供索引,它会删除并返回最后一个元素。例如:

my_list = [1, 2, 3]
removed_element = my_list.pop(1)   #这个1是要删除元素位置的索引,而不是删除的元素
print(my_list)  # 输出[1, 3]
print(removed_element)  # 输出2

5.3其他方法

5.3.1排序

sort()方法用于对列表进行排序。例如: 

my_list = [3, 1, 4, 2]
my_list.sort()
print(my_list)  # 输出[1, 2, 3, 4]

 还可以根据ASCII 码表进行排序:

my_list = ["b","d","c","a"]
my_list.sort()
print(my_list)   #输出['a','b','c','d']
5.3.2反转元素

reverse()方法用于反转列表中的元素顺序。例如:

my_list = [1, 2, 3, 4, 5]
# 使用reverse()方法反转列表元素顺序
my_list.reverse()
print(my_list)  #输出[5, 4, 3, 2, 1]
#也可以对不同类型元素的混合列表使用该方法
mixed_list = [1, "hello", True, [4, 5]]
mixed_list.reverse()
print(mixed_list)  #输出[[4, 5], True, 'hello', 1]
 5.3.3统计元素的频次

count()方法用于统计指定元素在列表中出现的次数,例如:

my_list = [1, 2, 2, 3, 3, 3]
count_of_2 = my_list.count(2)
count_of_3 = my_list.count(3)
print("元素2出现的次数:", count_of_2)
print("元素3出现的次数:", count_of_3)
#输出结果:
#元素2出现的次数: 2
#元素3出现的次数: 3
 5.3.4将元素添加到列表末尾

extend()方法用于将一个列表中的所有元素添加到另一个列表的末尾。例如:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1)  # 输出[1, 2, 3, 4, 5, 6]

二、元组

1、元组的定义

元组(tuple)是一个有序且不可更改的集合,允许重复。元组(tuple)是 Python 中一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。元组和列表(list)的不同之处在于:列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;而元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列

我们用一个小括号来定义元组:

my_tuple = (1, 2, 3, "four", True)
print(my_tuple)
#输出结果:(1, 2, 3, 'four', True)

也可以不使用括号来定义元组,只要用逗号分隔元素即可。例如:

my_tuple = 1, 2, 3, "four", True
print(my_tuple)
#输出结果:(1, 2, 3, 'four', True)

定义只有一个元素的元组时,需要在元素后面加上逗号,以区别于普通的括号表达式。例如:

my_tuple = 1,
print(my_tuple)
#输出结果:(1,)

 2、访问元组元素

元组元素访问方式和列表类似,通过索引来访问。索引从 0 开始。例如:

my_tuple = (1, 2, 3, "four", True)
print(my_tuple[0])  # 输出1
print(my_tuple[3])  # 输出"four"

同样也可以使用负索引从元组末尾开始访问元素。例如: 

tuple1 = ("a", "b", "c", 1, "d")
print(tuple1[-5])
#输出结果为a

 3、元组切片

元组切片和列表切片、字符串切片都一样,都是[start:stop:step],还是一样,如果对切片操作还有不理解的可以去看我的上一篇文章——字符串的相关操作

这里直接给出示例:

my_tuple = (1, 2, 3, "four", True)
print(my_tuple[1:4])
print(my_tuple[0:4:2])
print(my_tuple[::3])
#输出结果分别为:(2, 3, 'four')
#               (1, 3)
#               (1, 'four')

4、元组的不可变性

元组一旦被创建,其元素就不能被修改。例如,以下操作是不允许的:

   my_tuple = (1, 2, 3)
   my_tuple[1] = 4  # 这会引发TypeError,因为元组是不可变的

但是,如果元组中一个元素为可变序列,例如列表,那么可以修改这个可变元素的内容。

例如:

my_tuple = ([1, 2], 3)
my_tuple[0][0] = 4   #将my_tuple中的第0个元素中的第0个元素改为4
print(my_tuple)  # 输出([4, 2], 3)

5、元组的更多操作

1)元组的长度

使用 len 函数可以获取元组的长度:

a_tuple = (1, "r", 2, "u")
print(len(a_tuple))

执行以上代码,输出结果为:

4

(2)元组的复制

使用 * 可以对元组进行复制:

a_tuple = (1, 'r', 2, 'u')
print(a_tuple * 2)

执行以上代码,输出结果为:

(1, 'r', 2, 'u', 1, 'r', 2, 'u')

(3)判断元组中是否存在某元素

使用 in 可以判断元组中是否存在某元素,如果存在,返回 True,如果不存在,返回 False。

tuple1 = (1, 2, "y", 9)
print(1 in tuple1)
print(3 in tuple1)

执行以上代码,输出结果为:

True
False

(4)元组的遍历

使用 for 循环可以实现元组的遍历:

tuple0 = ("a", "f", 2, 5, 9)
for i in tuple0:
    print(i)

执行以上代码,输出结果为:

(5)返回元组中最大和最小值

使用 max 函数和 min 函数可以分别返回元组中的最大值和最小值,语法格式为:max(元组名),min(元组名)

tuple1 = (4, 5, 3, 1, 2)
print(max(tuple1))
print(min(tuple1))

执行以上代码,输出结果为:

5
1

6、元组的用途

6.1作为多个返回值的容器

在函数中,可以返回多个值,这些值会被打包成一个元组。例如: 

def get():
    name = "Alice"
    age = 30
    return name, age
result = get()
print(result)  # 输出("Alice", 30)

(函数会在后面的文章讲到,这里只是先做了解)

6.2保护数据不被修改 

当数据不应该被修改时,我们就可以利用元组的不可变性,使用元组提供一定的安全性。例如,存储一些配置常量等

6.3作为字典的键

如果元组中的元素都是不可变类型,则可以用作字典的键
字典的键必须是不可变的,所以元组可以作为字典的键,而列表不可以
(字典会在下一篇文章中讲解,这里只是先提出来这个用途,先做了解)


总结

以上就是今天要讲的内容,本文仅仅简单介绍了列表、元组的使用,还有一些应用需要结合后面讲的函数和字典来讲解,后续的文章呢,我也会尽快更新,还是一样,如果有不懂得觉得哪里讲的不清楚可以把问题发在评论区,我们一起交流。希望各位可以给个三连支持一下,也希望能够订阅一下我的专栏,以便获取最新的更新,谢谢啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值