自学Python第四课:列表

列表是什么?

列表是由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字 0-9 或所有家庭成员姓名的列表,也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。

一句话:一排有序的小盒子,用 [] 包起来,盒子间用逗号隔开。

fruits = ["苹果", "香蕉", "橙子", "葡萄"]

之前学的变量只能装一个值,列表能装一堆,而且这堆东西还能排序、增减、改。

索引从0而不是从1开始

在 Python 中,第一个列表元素的索引为 0 ,而不是 1 ,在大多数编程语言中都是如此。这与列表操作的底层实现相关。如果结果不对,请看看你是否犯了简单的错误。

fruits[0]  # 苹果(第1个)
fruits[2]  # 橙子(第3个)
fruits[-1] # 葡萄(倒数第1个,-1 是最后一个)

切片:一次切一段

fruits[0:2]  # ['苹果','香蕉']  —— 含起点0,不含终点2
fruits[1:]   # 省略终点 = 一直切到末尾

修改、添加和删除元素

创建的大多数列表都是动态的,这意味着列表创建后将随着程序的运行增删元素。 例如:创建一个游戏,要求玩家射杀从天而降的外星人。可在开始时将一些外星人存储在列表中: 1. 每当有外星人被射杀时,都将其从列表中删除; 2. 每次有新的外星人出现在屏幕上时,都将其添加到列表中。 在整个游戏运行期间,外星人列表的长度将不断变化。

操作 代码 说明
fruits[1] = "芒果" 直接给某个位置赋值
fruits.append("西瓜") 加到末尾
fruits.remove("橙子") 按"内容"删

改(最简单)

直接给某个位置赋值就行:

fruits = ["苹果", "香蕉", "橙子", "葡萄"] 
print(fruits) 
fruits[0] = "芒果" # 下标0换成芒果 
print(fruits)

还有一种是切片改,妙处是:左右数量可以不相等,比如 [0:1] = ["a","b","c"] 能让一个位置"裂"成三个。

妙处:左右数量可以不相等,比如 [0:1] = ["a","b","c"] 能让一个位置"裂"成三个。

fruits[0:2] = ["西瓜","草莓"] # 切片改:把前两个整体替换成这两个

加(3种,记清区别)

第一种命令是:fruits.append("菠萝")

第二种命令是:fruits.insert(1,"菠萝"),#这里的1代表在1处插入,原1处往后移。

第三种命令是:extend([...])

删(4 种,按"值"还是按"位置"分)

remove(值) 内容删第一个匹配的
pop(下标) 位置 返回被删的元素
del 列表[下标] 位置
clear() 清空全部 无(列表变空 []

一:按「值」删(你只知道它叫什么)

remove(值) —— 凭名字删第一个匹配的。

fruits.remove("橙子") # 把叫"橙子"的那个删掉,不关心它在第几位

按「位置」删(你知道第几个)

pop(下标) —— 删指定位置,并把删掉的东西还给你。

popped = pruits.pop(2) # 删下标2,popped 就是被删的"橙子"
last = pruits.pop() # 不写下标 → 默认删最后一个

三:del 列表[下标] —— 删指定位置,无返回值,但能删「一整段」

del lst[0] # 删下标0
del lst[1:3] # 删下标1到2这一片("香蕉""橙子"一起没)

四:一次性清空

clear() —— 全删,列表变 []

fruits.clear() # 变成空列表

组织列表

组织列表"不是 Python 里的官方术语,是把这一类操作归到一块儿、起的一个通俗说法。一句话理解:增/删/改是你"亲手挑一个元素"去动手(往里塞、拿出来、换个值),组织列表是你让列表整体自己整理,或者去"打听"列表的信息。

打个比方:前面是把抽屉里某一件东西拿出来/放进去;现在是把整个抽屉理一理——按大小排好、数数有几件、找某件在哪一格。

1. 排序:sort() 原地改 vs sorted() 返回新列表

这是最容易混的一对,记住一句话:

  • sort():直接把原列表改了(原地排序),不返回新列表
  • sorted()不动原列表,而是返回一个排好序的新列表

2. 反转:reverse()

3. 长度:len(列表) 最常用,记牢

上一篇 自学English第一课:从元辅音开始
下一篇 自学English第二课:to-do和doing

与「遗落时光」交流

看完这篇有收获?欢迎联系作者,一起聊技术、提建议~

公众号 Q 加QQ 加微信 发邮件