![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=1738825092-Kny1pVdLMpnqenBTzQJtzXcsXmV4yo7A-0-849ff1b42290574eb040ba054e20b906)
3.1.1 list的定义
list的定义采用一对方括号,里面填充着你想存储的数据。当然,也可以什么都不存,即只用一对方括号。这样就声明了一个空的list,代码如下:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_3.jpg?sign=1738825092-wwmJE5UtLIqkwcld4fAXjstFGkcgJzBX-0-a9bf1fff777c9423a5c309171c59b180)
3.1.2 list查询数据
list可以查询一组数据中的某个具体元素。在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_4.jpg?sign=1738825092-h3SaAz9NfzRqruq0sMbFL4GneGlmQy9U-0-e432e2b10f7570cb22fbf1845604f56b)
这种方括号的方式是直接取第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=1738825092-HGjcsKjVlETOqGoetUwX1PKIBBCHJGKo-0-7670ff2874b58422a02966faf4b6f545)
访问第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=1738825092-n2yCthDltQbuuFAOh99dwCSPzateiP0E-0-44bbda27990043c61182255838216512)
如果想修改某个元素,则直接通过3.1.2节中获取第x个元素的方法取出元素,然后直接赋值即可。在这个例子中,将之前值是“LOL”的元素重新赋值成了“WOW”。
3.1.4 list删除数据
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_8.jpg?sign=1738825092-pbhrpCaFvJFclV1RkIY7JwYw9xCXpJb3-0-e98dd808fd13a2bbdb5e2ce93034b6f8)
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=1738825092-KQuuHN4eDPtCvFm6cVlmXFT72vvluYkL-0-679e059396b571d234751994beeb884f)
如果想在list中插入元素,则可以使用insert方法把元素插入到指定位置,也可以直接用append方法把元素插入到list的“末尾”。
3.1.6 list拼接
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_10.jpg?sign=1738825092-1GLYemLIFPe6rTNVeFzZFLpESWAKV1jM-0-cfd0bd8fa69d5dd909168a168fa6f21d)
list是支持“+”和“*”运算的,“+”运算指将两个list中的元素拼接起来,“*”运算指将list中的元素复制指定的次数。
3.1.7 list切片
在Python命令行模式下运行以下代码:
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_11.jpg?sign=1738825092-wAttHX7wyY0UP5tg38UPYqnz8E1MSWFX-0-d493946ebc938124e657a3b7fb64b285)
方括号里的两个数用冒号(注意,是英文冒号)分开(如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=1738825092-rvxs4GaD01cnL0kntGjSGafEhDf0YncK-0-89d45e9ae9e3b009505d6493fdc81b14)
用“in”判断某个元素是否在列表中。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_14.jpg?sign=1738825092-UsF9LDFbmGeMzs9HlyCFX86hY8E1PpGJ-0-5fb52de3b4688a5a3925997df9d6d2e2)
在列表中,count方法的作用是,统计某个元素在列表中的个数。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_16.jpg?sign=1738825092-NkpdbLsWU4IBEKmOObGBfBwfPf3v3GbP-0-5f011dced3c0793361f4a549a83340b7)
max函数和min函数的作用是,快速找到列表中的最大值和最小值。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_17.jpg?sign=1738825092-Om1vGvU9IdDJ6fvtHtLQUTC190TxrSxS-0-6d5f42c0f6bd82f82041847b670e3783)
clear方法的作用是清空list。game_list调用clear方法之后,里面的元素就被清空了。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_18.jpg?sign=1738825092-6Gsin5hbdEVHTGhmL2aGIjwhjFJHZPLb-0-5b7bb7fe8e7f738ee8edcc76c0c42dc9)
reverse方法用于翻转列表。