python 中的列表 Part 1
本文主要讲解了python中列表的使用
本文为自学B站上鱼C的python课程随手做的笔记。
如有问题,欢迎大家批评指正
原视频链接:https://www.bilibili.com/video/BV1c4411e77t?p=8
原视频内分享的鱼C论坛上的文章(讲解列表的各种操作方法):https://fishc.com.cn/member.php?mod=logging&action=login&mobile=2 (需注册)
提示:以下是本篇文章正文内容,下面案例可供参考
一、列表的创建、索引、切片
a. 创建列表
创建列表:只需要用中括弧将所有想要列表包含的元素给包裹起来,不同元素之间用逗号隔开。代码如下(示例):
list = [1,2,3,'OK'] #列表可以兼收不同种的数据类型,这个列表就包含了整数和字符串。
list = [] #创建空列表
NB:(1)和字符串一样,列表也是一个序列(列表也可以迭代),可以和for循环一起用。
b. 列表索引
下标索引:方括弧里面是要索引的元素下标,list[n]。
- 从前向后:是从0开始,第一个元素是0,第二个元素是1。
list = [1,2,3,'OK']
list[1]
运行结果:
2
2.从后向前:是从-1开始,倒数第一个元素是-1,依次向前-2,-3……。
list[-1] 即 list[len(list)-1]
list[-2]
运行结果:
3
元素 |
1 |
2 |
3 |
“OK” |
下标(正向) |
0 |
1 |
2 |
3 |
下标(反向) |
-4 |
-3 |
-2 |
-1 |
c. 列表切片
方括弧里面是要切片的范围,范围要用:表示,list[n:m]。注意不包括右边的m
注意:
(1)list[n:m] 输出结果是下标为n到(m-1)之间的元素,不包括右边的m。换句话说list[n:m]是输出list中第n+1到第m个的元素。
(2)范围之间是用冒号 :来表示
常用的各种切片方式代码示例:
二、列表的操作(增/删/改/查)
1.增
(1)append():在列表的末尾来添加一个指定元素
代码如下(示例):
(2)extend(): 允许直接添加一个可迭代对象。
注意:extend()方法参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素后面。
代码如下(承接append里面的例子):
(3)是用切片来添加元素:
list[len(list):] = [追加的元素列表]
示例:
(4)在列表任意位置添加元素:insert()
# 两个参数
insert(待插入的位置, 待插入的元素)
示例:
2. 删
(1)remove():将指定元素删除
注意:
<1>. 如果列表中存在多个匹配的元素,那么它只会删除第一个。
<2>. 如果指定元素不存在,那么程序就会报错。
代码如下(示例):
(2)pop() 删除某个位置上的元素,参数为元素的下标索引值。
(3) clear() 清空列表
list = [1,2,3]
list.clear()
list
输出结果:
[]
3. 改
(1)用索引和切片来改动
切片改动的原理是分两步实现的:
step one:将赋值号=左边特定的内容删除
step two:将包含在赋值号=右边的可迭代对象中的片段插入左边被删除的位置。
(2)sort()
list.sort(key = None, reverse = False)
key参数指定一个用于比较的函数;reverse参数用于指定排序结果是否反转
(3)reverse()原地反转列表中的元素(第一个与最后一个互换,第二个与倒数第二个互换,第三个与倒数第三个互换,……)
4. 查
(1)count(x):查某个元素在列表中出现的次数
用法:
list.count(x):返回x元素在列表list中出现的次数
示例 :
nums = [9,8,5,3,3,3]
nums.counts(3)
运行结果:
3
(2) index(x):查某个元素在列表中对应的的索引值
用法:
list.index(x, start, end)
返回x元素位于list列表的索引值,如果有多个匹配元素就返回第一个找到的索引值(start和end可选,指定开始和结束位置,不过返回的索引值仍然是以序列开始位置计算的);如果找不到,则返回ValueError异常
示例 :
(3)copy() 用于浅拷贝一个列表
list.copy() 返回list列表的一个浅拷贝,相当于list[:]
示例 :
list_copy = list.copy()
等同于:
list_copy = list[:]
注意:不要使用 list_copy = list 来妄图拷贝列表,具体原因,以及深拷贝和浅拷贝的区别见 列表Part2 的笔记
三. 列表的加法和乘法(concatenation and multiplication of list)
a. 列表的加法 (拼接)
示例 :
b. 列表的乘法(重复列表里面所有内容若干次)
示例 :
注意:一维列表A*n得到n维列表时,实际是对列表A的多次引用,即如果被引用的原来的列表(A)里的元素改动,其他维度里都会发生相同的变化
python官方文档的强调:
(具体详见 列表Part2 的笔记)
四. 嵌套列表(nested list)
即在列表里面嵌入列表
1. 生成嵌套列表
生成一个二维列表:
使用 for 循环来创建嵌套列表:
2. 访问嵌套列表 (access nested list)
(1)使用嵌套循环来访问嵌套列表:
(2)通过下标索引来访问嵌套列表
代码如下(示例):