Python 列表的简单介绍

这篇文章即《Python的变量和简单数据类型》之后的总结文章(Eric Matthes 《Python编程从入门到实践》第三章)

什么是列表

列表同样是每一个编程语言都需要的数据结构,它可以非常有效的帮助程序员我们存储一组有关联的数据。学习下来,相比Java的列表,Python的使用让我觉得更加方便,有点贴近JS。

在 Python 中,利用[]来表示列表,例如:

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']

这样一组跑车车牌的数据便是列表,它并不需要像 Java 那样定义类型再创建数组

访问元素

既然是集合,我们就可以访问集合中的每个元素,这时我们就会用到索引这个概念。就像数据库,索引往往可以快速找到指定位置的数据,而 Python 也跟其他编程语言一样索引从0开始

打印法拉利车牌名

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
print(sports_cars[2])

上面的列表中法拉利是从左往右数第三个,而下标从0开始,因此下标为2的元素sports_cars[2]
注意如果列表是[]空的,去获取的话就会报错,包括获取的索引值越界

有意思的是,Python不仅能从左往右正着数,还能倒着数

lamborghini 为 0, 那么 mclaren 就是 -1 即 ferrari 就是 -2 的索引
因此

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
print(sports_cars[-2])

同样可以取出 ferrari

因为 sports_cars[-2] 这样一条代码其本省就是 'ferrari' 字符串,所以可以直接使用字符串的函数,例如 print(sports_cars[-2].title()) 就会输出 Ferrari

修改,添加,删除元素

修改列表元素

直接上代码,这样更好理解,这里将 ‘porsche’ 保时捷 修改为 ‘koenigsegg’ 柯尼塞格

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
sports_cars[1] = 'koenigsegg'
print(sports_cars)

输出:

['lamborghini', 'koenigsegg', 'ferrari', 'mclaren']

添加元素

末尾添加

列表添加元素有多种方案,其中末尾添加使用的是 append() 函数方法

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
sports_cars.append('pagani')

以上操作便能在列表的末尾添加帕加尼 pagani

列表中插入

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
sports_cars.insert(1, 'pagani')

如上述代码所见,这一次我们通过insert()来插入帕加尼,insert会用到两个参数,索引和值,这样便能在兰博基尼 lamborghini 后面插入 pagani

删除元素

删除元素同样也有多种方法

del语句删除

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
del sports_cars[0]

上述代码便能删除列表中的第一个元素兰博基尼 lamborghini

要注意这样的操作是在原列表中进行,也就是删掉了便无法再访问到删除的元素

pop()

pop 即弹出,上一个语句del在删除后就无法访问删除的元素,但pop()可以用变量接收弹出的元素

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
popped_mclaren = sports_cars.pop()

此时原列表会弹出最后一个元素,即迈凯轮 mclaren,原列表只剩下三个元素,然后 mclaren 会被 popped_mclaren变量接收
pop不仅仅可以弹出最后一个元素,它也可以指定列表当中任意一个索引弹出,例如我想弹出法拉利 ferrari

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
popped_ferrari = sports_cars.pop(2)

根据内容值删除元素

列表还可以通过remove()来删除

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
sports_cars.remove('porsche')

要注意,如果有两个或更多个相同的内容值,remove() 只会删除第一个指定的值

简单组织排序列表

sort()对列表永久排序

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
sports_cars.sort()
print(sports_cars)
['ferrari', 'lamborghini', 'mclaren', 'porsche']

Python 列表的 sort() 方法会让该列表的当中的元素按英文的首字母排序,当然不同内容,例如整数列表就有整数列表的排序规则即正序等

sort()永久更改列表的顺序,也就是没法复原

sort() 也可以传入 reverse=True 这样的参数进行倒续排序

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
sports_cars.sort(reverse=True)
print(sports_cars)
['porsche', 'mclaren', 'lamborghini', 'ferrari']

sorted()临时排序

所谓临时,就是它将不再是永久更改原列表

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
print(sorted(sports_cars))
print(sports_cars)
['ferrari', 'lamborghini', 'mclaren', 'porsche']
['lamborghini', 'porsche', 'ferrari', 'mclaren']

可以看到,原列表并没有被修改

sorted() 也同样支持传递 reverse=True 的参数

倒着打印列表

我们在上面说到过通过传参倒续排序,而Python也同样支持将原列表倒续,但方法是永久性修改原列表

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
sports_cars.reverse()
print(sports_cars)
['mclaren', 'ferrari', 'porsche', 'lamborghini']

确定列表长度

最后再来告诉大家获取列表长度的方法

sports_cars = ['lamborghini', 'porsche', 'ferrari', 'mclaren']
print(len(sports_cars))

这样就能输出列表的长度 4

上一篇:Oracle APEX开发搭建二《rhel8 oracle 19c 19.3》


下一篇:ThinkPHP6中的多图上传以及图片预览