![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=1738982010-CzY3YH8I8LKugiktlvseBnNYOled4caX-0-3860edadd8817d7a0b7c3260ec372d5d)
3.1.1 list的定义
list的定义采用一对方括号,里面填充着你想存储的数据。当然,也可以什么都不存,即只用一对方括号。这样就声明了一个空的list,代码如下:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_3.jpg?sign=1738982010-CxEJSyUmGrbN9g2ECay8axjGK6WBQwnx-0-f8b78337add68c54498e59eba73ddc28)
3.1.2 list查询数据
list可以查询一组数据中的某个具体元素。在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_4.jpg?sign=1738982010-ZnUVIyspt9Znw95q4Sa2JghToU59eimx-0-04faf41b79bd62157d57bc3b5dffaa15)
这种方括号的方式是直接取第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=1738982010-hHaS2Y8sIO3QXb4inR0RtQWsTAt6SwaQ-0-09423124ec5c9365edf5f4c1543ce61e)
访问第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=1738982010-tzmCwhqTNr2ReDhc6qXktyUYFLkQyiCy-0-9d0f98480dc1da49f2b78bac7321189a)
如果想修改某个元素,则直接通过3.1.2节中获取第x个元素的方法取出元素,然后直接赋值即可。在这个例子中,将之前值是“LOL”的元素重新赋值成了“WOW”。
3.1.4 list删除数据
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_8.jpg?sign=1738982010-clt77a7NIJkp4QAcU5A0WH4KmcuEgpDd-0-2386244647a22e6e571e26c156c69f64)
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=1738982010-AbbozGmhkmTuOOFs4sNN1Kwm34JnBPkk-0-10d8d28801b764075717bc332e73ea0d)
如果想在list中插入元素,则可以使用insert方法把元素插入到指定位置,也可以直接用append方法把元素插入到list的“末尾”。
3.1.6 list拼接
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_10.jpg?sign=1738982010-HRmY4LKolQ9MLNG79HZs6kWVTM7rxany-0-91fd3620c49ef419adbdf60c1c5515ff)
list是支持“+”和“*”运算的,“+”运算指将两个list中的元素拼接起来,“*”运算指将list中的元素复制指定的次数。
3.1.7 list切片
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_11.jpg?sign=1738982010-JUKE3eBAz504d8KhLmytOPUcBdXpdJC4-0-51b00cc4e37dd9b4a0ed32b40cd6bac1)
方括号里的两个数用冒号(注意,是英文冒号)分开(如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=1738982010-4Fkco3Xy4D5mCBLT6vomsVi98wHwGInf-0-d5e94db0f0ce00c5b0f56157357e3bd3)
用“in”判断某个元素是否在列表中。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_14.jpg?sign=1738982010-7RsRIPEQFplZrnNqo5PlyGb0S9VMQ4HT-0-5ec7e8b70f448aa7bd53c5aed5cb64f8)
在列表中,count方法的作用是,统计某个元素在列表中的个数。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_16.jpg?sign=1738982010-lco61Aopzqb8i0VwKCQFo0lP5Fn2ePvv-0-1da71f071266d027eca96a55009f1842)
max函数和min函数的作用是,快速找到列表中的最大值和最小值。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_17.jpg?sign=1738982010-yENVoIVlPWBAiM33vVNFusjh21xVhW84-0-0b2ce6ea4cf17807a541074cb7582e7c)
clear方法的作用是清空list。game_list调用clear方法之后,里面的元素就被清空了。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_18.jpg?sign=1738982010-sySbb0KjmYvmN9cwH9wZc8MHO7wmxRTW-0-9ed02c9cbe2d7a2f4e611a8333aeee05)
reverse方法用于翻转列表。