写点什么

Python 列表对象入门

用户头像
老赵
关注
发布于: 2021 年 01 月 15 日

列表 list

列表 ( list )是 *Python*的基本数据类型之一,它是一种 有序集合,用*[]*将 元素包括在内,并以 逗号为分隔符。 例如, [1, 2, 3, 4, 5]  就是一个 list

>>>[1, 2, 3, 4, 5]

[1, 2, 3, 4, 5]

该列表中保存了 5 个数字,像这种用于存储数据的对象,被称为 容器对象

索引

list 是一个有序列表,可以想象成由一系列槽位组成,槽位可以存储数据。 每个槽位都有一个唯一的编号,称为 索引 ( index ) 或者 下标list 的下标从 0 开始,即第 1 个元素的下标是 0,第 *2*个元素的下标是 1,依此类推。

[image:4C69F72D-67E1-4CA2-B46F-225EC16B6205-657-000027C77E997F1A/847BF9AA-4BEC-42E5-A96A-C36C4735D971.png]

我们可以通过下标,取出对应元素。

负数下标

我们在描述某个元素时,除了 第几个元素 这种表达方式, 倒数第几个元素 也很常用。

>>>team[-2]

‘Paul’

值得注意的是,负数下标,从 -1 开始,从右往左 递减 。


[image:AF42A947-C4E2-4978-B3FD-8622BFABCA67-657-000027E7FF55BA90/4F140EED-1F03-4612-AD05-441275257EC2.png]

切片

除了按照各自的下标查找单个元素,我们还可以指定下标范围,取出范围内的元素。 比如,我们现在要取出第 2-4 个元素:

>>>team[1:4]

[‘Jim’, ‘Tom’, ‘Paul’]

左闭右开的区间

追加

使用 append 函数,往列表尾部添加新元素:

>>>team.append(‘Billy’)

Billy 是待添加元素,作为参数传给 append 函数。 这样一来, Billy 就在 *list* 里面了:

>>>team

[‘Tim’, ‘Jim’, ‘Tom’, ‘Paul’, ‘Mike’, ‘Billy’]

特别注意,append 函数将新元素添加到列表末尾:


[image:A6AAB1F9-8468-43BB-B93D-41C6FFA2FA51-657-0000282BC6E2D0E1/B7A71280-4CDC-4282-8A6F-C3C08DC111F4.png]

合并


使用 extend 函数,将列表 basketball_girls 加到列表 team 里面去:

>>>team.extend(basketball_girls)

>>>team

[‘Tim’, ‘Jim’, ‘Tom’, ‘Paul’, ‘Mike’, ‘Billy’, ‘Lucy’, ‘Jessica’, ‘Alice’]


[image:7806CEB8-B84B-464E-8ECB-6F1A4BAD10AE-657-00002866D7A0964E/F6F0E8C3-E98C-489F-A6A7-2CBDA1473EE1.png]

extend 函数,将待合并的列表,追加到原列表的末尾。

更改

学期末了,Paul 由于备考退出了球队,他找来好朋友 Bob 顶替自己。 这时,我们需要将 Paul 的位置替换成 Bob 。 首先,使用 index 函数,找出 Paul 的下标:

>>> i = team.index('Paul')

>>> i

3

我们将找到的下标保存到变量 i 中,访问 i ,发现 Paul 的下标是 3 。 现在,验证下这个下标是否正确。 由于我们将下标保存在变量 i 中,因此也可以这样取出元素的值:

>>> team[i]

'Paul'

正确无误!接下来,将 Paul 替换成 Bob :

>>> team[i] = 'Bob'

再次访问变量 team ,看到下标为 3 的位置已经替换成 Bob 了:

>>> team

['Tim', 'Jim', 'Tom', 'Bob', 'Mike', 'Billy', 'Lucy', 'Jessica', 'Alice’]、

删除

Tom 也想退出球队,但是却找不到其他人来替换自己。 这时,我们借助 remove 函数,从列表中删除 Tom 的信息。 remove 函数将待删除的元素作为参数:


>>> team.remove('Tom')

查看 team 变量,Tom 的名字已经被删除了:


>>> team

['Tim', 'Jim', 'Bob', 'Mike', 'Billy', 'Lucy', 'Jessica', 'Alice']

另外,还可以调用 pop 函数来删除元素。 与 remove 函数不同的是,pop 函数接收的参数是待删除元素的下标。 Tom 是列表中的第 3 个元素,下标是 2 。因此,执行如下代码,也可以将 Tom 从列表中删除:


>>> team.pop(2)

pop 函数也可不指定任何参数,默认将删除并返回列表中的最后一个元素,等价于:


>>> team.pop(-1)

举个例子,我们对 team 执行 pop 操作:


>>> team

['Tim', 'Jim', 'Bob', 'Mike', 'Billy', 'Lucy', 'Jessica', 'Alice']

>>> team.pop()

'Alice'

>>> team

['Tim', 'Jim', 'Bob', 'Mike', 'Billy', 'Lucy', 'Jessica']

看,Alice 被删除了!

排序

我们还可以调用 sort 函数,对列表中的元素进行排序:


>>> team.sort()

那是按照什么规则来排序的呢?我们来观察一下排序后的列表:


>>> team

['Billy', 'Bob', 'Jessica', 'Jim', 'Lucy', 'Mike', 'Tim']

可以看到,列表中的元素排序规则如下:


比较首字母,字母小的排在前面;

首个字母相同,则比较第二个字母,字母小的排在前面;

依此类推,直到比较出大小;

那如果列表中存储的元素是数字呢? 按照上述的排序规则,猜测应该是从小到大排序。 事不宜迟,我们马上来实验一把:


>>> num = [2, 33, 4, 12, 5]

>>> num.sort()

>>> num

[2, 4, 5, 12, 33]

果不其然,真是按从小到大排序!


那如果要从大到小排序,有什么办法吗? sort 函数提供了一个开关,可以让我们选择排序规则。 将 reverse 参数赋值为 True ,使用 从大到小 规则排序:


>>> team.sort(reverse=True)

访问 team,元素已经按从大到小排序了:


>>> team

['Tim', 'Mike', 'Lucy', 'Jim', 'Jessica', 'Bob', 'Billy']


用户头像

老赵

关注

还未添加个人签名 2018.03.26 加入

还未添加个人简介

评论

发布
暂无评论
Python列表对象入门