前言:这个博客是为了记录我的学习过程也是为了能够有一种动力学习python,欢迎大家监督更新此博客。
(更新:2023年2月10日)
- 本博客所书写的文字类似于自述性的文字,官方话语较少,也有可能是自言自语的话,不过也比较真实记录学习过程。
第三节 认识列表及操作列表
一、什么是列表
1.认识列表概念
在 Python 中,列表是一种内置数据类型,表示一组有序的元素的集合。列表的元素可以是任何数据类型,包括整数、浮点数、字符串、布尔值等。列表的元素通常使用方括号([])括起来,元素间用逗号分隔。
- 例如:
# 方括号里面的xiaowang ——这个就是列表的元素,一个’’表示一个元素
name = ['xiaowang', 'xiaoming', 'lihua']
age = [10, 20, 30]
- 这些都是列表,等于号前面跟变量一样,这个是列表的名称,名称可以随意取,但是推荐大家使用自己能一眼看出这个列表是什么作用的名称,方便后期的继续更改,因为列表是动态的,可以在创建后添加、删除或修改元素,因此列表是非常有用和灵活的数据结构。
二、访问列表元素
1.使用索引访问列表元素
列表是一个有序的的一个集合,我们想要访问列表的任意元素,只需要把这个元素的位置(索引:就是方括号里面的元素一个一个数,!!起始值为0,不是平常的1开始数,从0开始数起)告诉程序即可,格式为:
# 列表名 = ['元素','元素','元素']
# 打印(列表名[索引])
# 定义列表
name = ['小王', '小明', '李华']
# 访问列表的第1个元素,索引从0开始
print(name[0])
print(name[1])
print(name[2])
- 输出结果,小王的索引位置为0,所以第一个打印的元素是小王,其他以此类推:
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1 ,可让 Python返回最后一个列表元素:
# 定义列表
name = ['小王', '小明', '李华']
# 访问列表元素
print(name[-1])
- 这种语法很有用,因为你经常需要在不知道列表长度 的情况下访问最后的元素。这种约定也适用于其他负数索引。例如,索引-2 返回倒数第 二个列表元素,索引-3 返回倒数第三个列表元素,依此类推。
2.使用循环访问列表元素
在我们使用的列表的时候,需求可能是要访问整个列表的元素,这个时候通过一个一个索引来访问显然不现实,这个时候python提供的循环(目前暂时不过多的去了解循环)就可以帮助我们很轻松的访问整个列表:
# 定义列表
name = ['小王', '小明', '李华', '小红']
# 遍历列表中的每一个元素
for name_1 in name:
print(name_1) # 打印当前遍历到的元素
- 这个循环整个列表是按照列表的顺序依次打印元素的:
3.使用切片访问列表元素
这第三种访问方法是为了满足我们访问列表中其中一段连续的元素的方法,切片访问需要知道元素的索引(索引位置从0开始依次排序)使用方法如下:
# 定义列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 访问列表中索引从1到3(不包含3)的元素
print(name[1:3])
- 注意这种切片访问的方式,是不包含最后一位索引的元素的,所以需要在访问的基础上再加一位索引;并且打印出来的方式也略有不同。
三、使用列表元素
1.初步使用列表元素
我们初步学习了如何访问列表的元素,当然不只是简单的打印出来怎么简单,我们对列表的使用方法其实跟字符串基本一致,你可以把字符串想象成只有一个元素的列表,使用我们在字符串所学的例如修改每个单词开头大小写,删除空格等方法均在使用列表元素时一致,以下为案例:
# 定义列表
name = ['小王', '小明', '李华', '小红', '小丽']
english = ['xiao wang', 'xiao min', 'li hua', 'xiao hong', 'xiao li']
# 把需要的赋给一个变量
invite = f"今天我是{name[2]},相信大家都认识这个名字,今天我来了!记住我: I am {english[2].title()}"
print(invite)
- 这里我们只是初步的使用列表,下一节我们再来详细的学习列的使用方法,上述代码实现效果如下:
- 上述的使用方式可以和字符串的使用方式一起使用,使用方法不变,字符串的使用链接:python的自学之路—第二节:认识字符串及操作字符串
四、修改、添加、和删除列表元素
1.修改列表元素
列表是动态的,所以列表可以随意修改,修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。简单点来说就是直接对你要修改的元素的索引进行赋值:
# 定义一个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 修改索引为1的元素
name[1] = '杨紫'
# 打印修改后的列表
print("修改后的列表:", name)
- 注意: 修改的索引不能超出原本列表的长度,否则会报错,索引越界,则会抛出IndexError异常。
2.添加列表元素
添加列表元素,在使用中有三种方法可以添加列表元素,也可以说可以在三种位置添加列表元素:末尾添加、随意位置添加、合并两个列表,我们依次学习:
在末尾添加列表元素:
- 使用append方法在列表末尾添加元素:
# 定义一个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 使用append方法在列表末尾添加元素
name.append('杨紫')
# 打印修改后的列表
print("修改后的列表:", name)
- 很简单就可以在列表的末尾添加元素,不管你的列表有多长,添加的位置永远是最后一个。
在任意位置添加列表元素:
- 使用insert方法在列表的任意位置添加元素:
# 定义一个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 使用insert方法在列表的任意位置添加元素,数字1为索引位置
name.insert(1, '杨紫')
# 打印修改后的列表
print("修改后的列表:", name)
- 注意:添加的位置是在你提供的索引的前面添加
合并两个列表元素:
- 1.使用extend方法合并两个列表元素:
# 定义两个列表
name = ['小王', '小明', '李华', '小红', '小丽']
name_1 = ['杨紫', '杨幂']
# 打印原列表
print("原列表:", name)
# 使用extend方法把两个列表的元素合并在一起
name.extend(name_1)
# 打印合并后的列表
print("修改后的列表:", name)
- 根据输出结果可以看出,合并是把.extend后面括号的内容在另一个元素的末尾顺序添加
- 2.使用+号合并两个列表元素:
# 定义两个列表
name = ['小王', '小明', '李华', '小红', '小丽']
name_1 = ['杨紫', '杨幂']
# 打印原列表
print("原列表:", name)
# 使用+号合并两个列表元素
name = name_1 + name
# 打印合并后的列表
print("使用+号操作符添加元素:", name)
- 在使用+号进行合并时,新列表的元素组成顺序时根据前后顺序排列的,如果想在后面添加就把他放在后面即可。
- 3.使用 号复制列表元素:*
# 定义两个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 使用*号复制列表元素
name = name * 2
# 打印合并后的列表
print("使用*号操作符添加元素:", name)
- 这是一个较为特殊的合并,其实就是把两个name合并在一起,列表复制一遍:
3.删除列表元素
在我们使用列表的时候,有时候可能想要删除列表中的一些元素,在python中删除列表中的元素也是有三种方式:del删除、pop删除、remove删除;我们按顺序学习:
- 使用del方法删除索引位置的元素:
# 定义一个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 使用del语句删除元素
del name[1]
# 打印删除后的列表
print("使用del删除之后的元素:", name)
- 使用del方法删除元素呢,需要注意得知道你要删除的元素的索引位置,并且使用del方法删除元素之后,这个元素对于程序来说是永久删除的,del方法也是最简单的方法。
- 使用pop方法删除索引位置或列表最后一位的元素:
# 定义一个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 使用pop语句删除元素
name.pop[3]
# 打印删除后的列表
print("使用pop删除之后的元素:", name)
- 使用pop方式删除列表元素可以像del一样根据列表索引来删除,如果后面的【】为空,则默认删除列表最后一位元素
- 使用pop删除列表元素的时候,对于del方法来说,pop删除并不是永久删除,pop删除可以将删除的元素重新赋值给一个列表名,后面我们可以去访问这个新的列表名从而访问这个被删除的元素:
# 定义一个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 使用pop语句删除元素
name_1 = name.pop[3]
# 打印删除后的列表
print("使用pop删除之后的元素:", name)
print("被删除的元素重新访问:", name_1)
- 重新赋值之后我们既可以在原列表中删除这个元素,也可以方便后续我们需要时继续访问这个元素
- 使用remove方法删除特定值的元素:
# 定义一个列表
name = ['小王', '小明', '李华', '小红', '小丽']
# 打印原列表
print("原列表:", name)
# 使用remove语句删除元素
name.remove('小明')
# 打印删除后的列表
print("使用remove删除之后的元素:", name)
- remove的方法可以自动去找到你要删除的值并且直接删除,这个方便在我们不知道索引位置的情况下去删除列表中的元素。
-
注意:方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来确保将每个值都删除
-
使用index()方法+del语句删除元素:
这是一种特殊的方法用两步来删除,了解即可
#定义列表
my_list = [1, 2, 3, 4, 5]
#使用index()方法查找元素的索引
index = my_list.index(3)
#使用del语句删除元素
del my_list[index]
#删除后的列表
print(my_list)
#结果:[1, 2, 4, 5]
五、对元素进行排序
在我们收集列表元素的时候可能收集的顺序不是我们想要的顺序,那我们可以对列表进去整理排序,有两种排序方法:sort()方法、sorted()函数
- 使用sort()方法进行排序:
- 注意使用sort() 方法排序后,列表元素将按照字典序排列,如果列表中元素为数字,则按照数字大小排列,如果时字母则按字母大小排序。
a = [3, 4, 1, 5, 2]
a.sort()
# 使用sort()方法排序
print(a)
- sort()方法是对列表元素进行排序的最简单方法,但是它不会返回新列表,改变的是原列表
- 使用sorted()函数进行排序:
- 排序方式与sorted一致,只是sorted不会改变原列表,返回的是一个新列表
# 案例代码
a = [3, 4, 1, 5, 2]
b = sorted(a) # 使用sorted()函数排序
print(a)
print(b)
- sorted()函数是对列表元素进行排序的方法,它返回一个新列表,不会改变原列表。
六、倒着打印列表、确定列表长度
1.倒着打印列表
我们在打印列表的时候除了能正序打印,也可以倒着打印列表
- 使用reverse()倒着打印列表:
# 案例代码
a = [1, 2, 3, 4, 5]
a.reverse()
print(a)
- 注意,reverse() 不是按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序
2.确定列表长度
我们在收集完成之后不知道列表长度的情况下可以直接使用程序算出列表长度
- 使用len()确定列表长度:
# 案例代码
a = [1, 2, 3, 4, 5]
b = a.len
print(b)
- 注意 Python计算列表元素数时从1开始,因此确定列表长度时,需要减一才是索引位置。
总算写完了,感觉这节好长,连一些废话都懒得打了,采用了一些官方话语,看着长度应该可以继续保持3天一更
大家在学习的时候不懂的可以直接问chat gpt,我在学习过程中感觉非常好用。