一、列表简介
List(列表)是 Python 中最基本的数据结构,也是使用最频繁的数据类型,在其他语言中通常叫做数组。
列表专门用于存储一串信息,用方括号 [ ] 定义数据,数据之间使用逗号,
分隔。
序列中的每个元素都分配一个数字,即是它的位置,或索引。
第一个索引是0,第二个索引是1,依此类推。
列表的数据项不需要具有相同的类型。
下面来简单定义一个列表。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
二、列表常用操作
序号 | 分类 | 关键字 / 函数 / 方法 | 说明 |
---|---|---|---|
1 | 读取 | 列表[索引] | 从列表中根据索引读取数据 |
列表.index("元素") | 从列表中找出第一个匹配元素的索引位置 | ||
2 | 增加 | 列表.insert(索引, 元素) | 在指定位置插入数据 |
列表.append(元素) | 在末尾追加数据 | ||
列表.extend(列表2) | 将列表2 的数据追加到列表 | ||
3 | 修改 | 列表[索引] = 数据 | 修改指定索引的数据 |
4 | 删除 | del 列表[索引] | 删除指定索引的数据 |
列表.remove[数据] | 删除第一个出现的指定数据 | ||
列表.pop | 删除末尾数据 | ||
列表.pop(索引) | 删除指定索引数据 | ||
列表.clear | 清空列表 | ||
5 | 计算 | len(列表) | 获取列表长度 |
列表.count(元素) | 元素在列表中出现的次数 | ||
max(列表) | 返回列表元素中的最大值 | ||
min(列表) | 返回列表元素中的最小值 | ||
6 | 排序 | 列表.sort() | 升序排序 |
列表.sort(reverse=True) | 降序排序 | ||
列表.reverse() | 逆序、反转 |
1、列表元素的读取
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
print(name_list[0])
# zhangsan
print(name_list[-2])
# wangwu
print(name_list[1:])
# ['lisi', 'wangwu', 'zhaoliu']
# 从第2个元素开始截取列表
注意:在访问列表中的值时,如果超出索引范围,程序会报错。如上面的例子,就会报出:
IndexError: list index out of range
index,从列表中找出第一个匹配元素的索引位置。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
print(name_list.index('lisi'))
# 1
print(name_list.index("wangwu", 2, 3))
# 2
index 的第2个和第3个参数分别是查找的起始和结束的位置,左闭右开。
如果查找不到值,就会报值错误:
ValueError: 'wangwu' is not in list
2、列表增加
insert,在列表的指定位置插入数据。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.insert(2, 'zhaoliu')
print(name_list)
# ['zhangsan', 'lisi', 'zhaoliu', 'wangwu']
append,在列表的末尾追加数据。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.append('zhaoliu')
print(name_list)
# ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
extend,在列表的末尾追加另一个列表。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list_2 = ['zhaoliu', 'tianqi']
name_list.extend(name_list_2)
print(name_list)
# ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'tianqi']
3、列表修改
修改列表中指定索引的元素。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list[1] = "zhaoliu"
print(name_list)
# ['zhangsan', 'zhaoliu', 'wangwu']
4、列表的删除
remove,删除列表中第一个出现的指定元素。
name_list = ["zhangsan", "lisi", "wangwu", "lisi"]
name_list.remove("lisi")
print(name_list)
# ['zhangsan', 'wangwu', 'lisi']
# 列表中存在多个"lisi",只删除第一个。
pop,删除末尾的元素。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.pop()
print(name_list)
# ['zhangsan', 'lisi']
# pop(index) 删除指定索引元素
name_list.pop(0)
print(name_list)
# ['lisi']
del,删除指定索引数据。
name_list = ["zhangsan", "lisi", "wangwu"]
del name_list[1]
print(name_list)
# ['zhangsan', 'wangwu']
del 关键字本质上是用来将一个变量从内存中删除的。
如果使用del关键字将变量从内存中删除,后续的代码就不能再使用这个变量了。
在日常开发中,要从列表删除数据,建议使用列表提供的方法。
clear,清空列表。
name_list = ["zhangsan", "lisi", "wangwu"]
name_list.clear()
print(name_list)
# []
5、列表的计算比较
len,获取列表的长度。
name_list = ["zhangsan", "lisi", "wangwu"]
print(len(name_list))
# 3
count,获取元素在列表中出现的次数。
name_list = ["zhangsan", "lisi", "wangwu", "lisi"]
print(name_list.count("lisi"))
# 2
max,返回列表元素中的最大值。
list1 = [8, 1, 3, 6, 5]
print(max(list1))
# 8
list2 = ["abc", "xyz", "jhc", "rtcx"]
print(max(list2))
# xyz
min,返回列表元素中的最小值。
list1 = [8, 1, 3, 6, 5]
print(min(list1))
# 1
list2 = ["abc", "xyz", "jhc", "rtcx"]
print(min(list2))
# abc
6、排序
sort,升序排序。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
name_list.sort()
print(name_list)
# ['lisi', 'wangwu', 'zhangsan', 'zhaoliu']
sort(reverse=True),降序排序。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
name_list.sort(reverse = True)
print(name_list)
# ['zhaoliu', 'zhangsan', 'wangwu', 'lisi']
reverse,逆序、反转。
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
name_list.reverse()
print(name_list)
# ['zhaoliu', 'wangwu', 'lisi', 'zhangsan']
三、Python列表脚本操作符
组合
num_list = [1, 2, 3] + [4, 5, 6]
print(num_list)
# [1, 2, 3, 4, 5, 6]
重复
str_list = ['Hi!'] * 4
print(str_list)
# ['Hi!', 'Hi!', 'Hi!', 'Hi!']
判断元素是否存在于列表中
value = 3 in [1, 2, 3]
print(value)
# True