![Python基础视频教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/276/29126276/b_29126276.jpg)
3.1 list
list(列表)多用于存储一组数据,其中的各个数据也被称作list中的一个元素,各元素按照顺序存储。
list可以被看作一列“火车”。该“火车”是由很多节“车厢”组成的。每节“车厢”都是list的一个元素,所有的“车厢”合起来就组成了一列“火车”。举个例子,在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_2.jpg?sign=1739285649-sZXtErWotB2zwPKmjYqvs8sF5IIv1Njx-0-689435d131e9a37a05a6a3bb3435b4b0)
3.1.1 list的定义
list的定义采用一对方括号,里面填充着你想存储的数据。当然,也可以什么都不存,即只用一对方括号。这样就声明了一个空的list,代码如下:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_3.jpg?sign=1739285649-vdMary6m1fOTk0LdEdacwKIYXR3ebk3x-0-df14fdc5bc3675a319ff6b2c13da4fac)
3.1.2 list查询数据
list可以查询一组数据中的某个具体元素。在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_4.jpg?sign=1739285649-v8Ye9P0vvx6xPmyWVg4ehM6yr5jpKg3o-0-e175216f0283e4d04d0b033564dda672)
这种方括号的方式是直接取第x个元素。这种取元素的方式在编程中通常被称为取下标,在计算机的世界中这是从0开始的。game_list一共有3个元素,如果访问game_list[3]就会报错。这是因为game_list没有第4个元素,强行访问第4个元素就超出了game_list的边界。这种错误在编程中被称为“越界”。在使用容器时,注意不要“越界”。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_5.jpg?sign=1739285649-lqZPgArKjYnE247xEOz4oq39ureJ3tRK-0-d373601313d2b7eb2fabfa4562ed3b9f)
访问第x个元素时,x可以是负数,表示倒数第x个元素。例如,-1就表示倒数第一个元素,即从前往后数的最后一个元素。game_list一共有3个元素,如果访问倒数第4个元素,则会报错。
3.1.3 list修改数据
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_7.jpg?sign=1739285649-I9FUCklOuSrw1c2Zsb3ZImuhMjkXOOPg-0-c79cfa16117ce9137f60f1aca7b7145c)
如果想修改某个元素,则直接通过3.1.2节中获取第x个元素的方法取出元素,然后直接赋值即可。在这个例子中,将之前值是“LOL”的元素重新赋值成了“WOW”。
3.1.4 list删除数据
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_8.jpg?sign=1739285649-4dHs3tMmQ2kJAwOTexfWQAYAC19DcxxN-0-24dca4d1c0259cd4534158c779a8f50f)
len函数可以获取list的长度(list中的元素个数),调用del关键字可以删除list中的元素。在这个例子中,第一次调用len(game_list)显示的元素个数为5个。在调用del game_list[1]后,元素“DOTA2”(从0开始计数)被删除。接着调用len(game_list),显示的元素个数为4个。
3.1.5 list插入数据
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_9.jpg?sign=1739285649-Z6RrlhVIUS8R5EyscNqYJLsuocy1X8Ew-0-50250e958a0d90362565e018b806470f)
如果想在list中插入元素,则可以使用insert方法把元素插入到指定位置,也可以直接用append方法把元素插入到list的“末尾”。
3.1.6 list拼接
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_10.jpg?sign=1739285649-mtRJZUvuhPqk7qeTyUKhRUnw6EhO1o9n-0-95d2f8ec29ed80702f59e2978a14912c)
list是支持“+”和“*”运算的,“+”运算指将两个list中的元素拼接起来,“*”运算指将list中的元素复制指定的次数。
3.1.7 list切片
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_11.jpg?sign=1739285649-1y3xx55I4yN2K1312dB3lS6Cux9nj0iQ-0-2a7c61b7447d959e8695d1a477491319)
方括号里的两个数用冒号(注意,是英文冒号)分开(如s[0:3]),这就是list的切片操作,切出某个区间内的子list,可以将其看作左闭右开的区间。例如s[0:3],表示[0, 3)区间,即s[0]、s[1]、s[2];s[2:5],表示[2, 5)区间,即s[2]、s[3]、s[4]。如果右区间超过了list本身的长度,则最多取到list的最后一个元素,所以s[0:7]和s[0:9]的结果是一样的。左边或者右边的值可以为“空”,如果左边的值为空的话,则表示从0开始;如果右边的值为空的话,则表示到末尾结束。例如s[:5]其实等于s[0:5],s[3:]则等价于s[3:7]。
3.1.8 list的常用方法
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_13.jpg?sign=1739285649-iVCZjdg1V25ryMYVE5eekmW122IWc4IE-0-b9e64eb92cb9b879d9f3281b425a907c)
用“in”判断某个元素是否在列表中。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_14.jpg?sign=1739285649-q48ThCGj6FHc1qAOLutONEaDqDYA1zjn-0-09d0c4062ceed6062f6bccf1231e766c)
在列表中,count方法的作用是,统计某个元素在列表中的个数。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_16.jpg?sign=1739285649-kmzQoYSG0ZYsNPizMZykpQidU6QSCbZN-0-f025cb121ea4d5d4cd06abe3066b4d3c)
max函数和min函数的作用是,快速找到列表中的最大值和最小值。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_17.jpg?sign=1739285649-BFGdkWSPHXE0Rx7Rsn1LsB0wkd2Wvuw1-0-e03236a58d5ab6136333e96f050ade3a)
clear方法的作用是清空list。game_list调用clear方法之后,里面的元素就被清空了。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_18.jpg?sign=1739285649-CLlVJGdfS0LSyOT13Vu2SdOLyzCXmwaw-0-0f9c9caf492ca020068289973b08a4f6)
reverse方法用于翻转列表。