首先列表与元组是高级数据类型,那什么是高级数据类型?其实高级数据类型的高级点在于能够表示复杂数据结构的数据类型,相比于基础数据类型(如整数、浮点数、布尔值等),高级数据类型可以存储和操作更多的数据,还提供了更丰富的功能和操作方法。
列表与字典是灵魂数据类型,列表与字典就相当于屠龙刀、倚天剑;程序的核心是处理数据,处理数据的过程一定会介入高级数据类型;怎么展现出我们对python的掌握的程度呢,就是对数据类型的掌握,尤其是高级数据类型;
列表的概念
在Python中,列表(List)是一种有序、可变、可重复的数据结构,用于存储一组元素。
列表的特点
列表中的元素按照顺序进行存储和管理
元素可以是任意类型且可以不一致
元素的长度理论上没有限制
列表允许包含重复的元素
列表是可变数据类型
列表的基本操作
索引是管理列表的核心!
索引操作
使用索引查询
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
print(stars[1])
使用索引修改数组
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
stars[1] = "superZhao"
print(stars)
使用切片查询数组多个元素
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
print(stars[1:3]) # ['赵丽颖', '白鹿']
使用切片修改数组多个元素
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
stars[1:3] = ["super Zhao", "super Bai"]
print(stars) #['杨紫', 'super Zhao', 'super Bai', '敖瑞鹏']
判断成员是否存在
in 关键字检查某元素是否为序列的成员
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
print("赵丽颖" in stars) # True
print("胡歌" in stars) # False
使用相加操作符"+",连接数组
这种方式连接后的数组,并不会去重
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
stars2 = ["杨紫", "胡歌"]
print(stars + stars2) # ['杨紫', '赵丽颖', '白鹿', '敖瑞鹏', '杨紫', '胡歌']
循环列表:for item in list
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
stars2 = ["杨紫", "胡歌"]
for name in stars:
print(name)
计算元素个数:len()方法
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
stars2 = ["杨紫", "胡歌"]
print(len(stars)) #4
把字符串转换为数组:list()
stars = "hello"
stars_list = list(stars)
print(stars_list) #['h', 'e', 'l', 'l', 'o']
内置方法
内置方法非常重要,是语言对数据类型做了支撑;
之前学过内置函数,一个函数就是一个功能代码块,比如print(),就是内置函数,一个名字代表一个功能,通过调用,完成功能的具体实现;
那什么是内置方法呢?内置函数直接调用就可以了,但是内置方法是有个依赖的,内置方法也是一个个函数,但是这些函数是放到一个类型下的,是有个归属的,归属数据对象(字符串对象,列表对象,字典对象);对象.方法()
我们知道对数据操作,无非就是增删改查;
增
append:追加元素,会经常使用,性能好,在保留位直接插入,所以在增加数据的时候优先使用此方法;
- 向最后位置添加元素
- 会修改原列表
- 返回值:None(无返回值)
insert :插入(不常用,插入一个值影响其他元素的位置,性能就变弱)
- 会修改原列表
- 返回值:None(无返回值)
stars = ["杨紫","赵丽颖","白鹿","敖瑞鹏"]
res = stars.insert(0,"胡歌")
print(res) # None
print(stars) # ['胡歌', '杨紫', '赵丽颖', '白鹿', '敖瑞鹏']
extend 在原列表扩展
-
列表对象.extend(列表对象)
-
返回值:None(无返回值)
-
会修改原列表
-
与“+”的区别,“+”号返回新列表,extend会影响原列表;
-
如果不想修改原列表,就使用+
-
实际情况extend要用的多
删
pop(index) 按索引删除
- 列表对象.pop(index)
- 不传参数,默认会删除最后一个
- 会修改原列表
- 返回值:被删除对象
remove 按内容删
- 列表对象.pop(内容)
- 返回值:None(无返回值)
clear 清空列表
- 列表对象.clear()
- python有个命令删除: del 列表对象 =》 会直接把列表对象整个删除,从内存中清空
改:下面的方法都会改变原列表
使用索引(上面已讲)
切片(上面已讲)
查
使用索引(上面已讲)
切片(上面已讲)
其他方法
sort:对元素大小排序
- 列表对象.sort()
- 默认从小到大
- 会修改原列表
- 返回值:None(无返回值)
reverse: 翻转
- 列表对象.reverse()
- 和列表对象[::-1]效果一样,计算出一个新翻转列表,reverse会改变原有值
- 会修改原列表
- 返回值:None(无返回值)
- 先用sort排序,再用reverse翻转,会实现从高到低的效果