1、概述
- Python中的列表是一种有序的集合,用于存储一系列的数据项,这些数据项可以是数字、文本、对象,甚至其他列表
- 有序
- 可变(同一个内存地址中的数据变化)
2、列表的操作
2.1、创建
#1.创建列表
list1 = [] #空列表
#2.带元素的列表
list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]
#3.列表中的元素可以是不同的数据类型
list3 = [12,3.13,True,False,"hello","米西米西"]
#注意: 将数据保存到列表的时候,不用考虑列表的大小,如果数据很大的话,底层会进行自动扩容.
2.2、获取、访问
list2 = ['劳斯莱斯','迈巴赫','兰博基尼','G63','MODEL-Y','秦',123,True,9.54]
print(list2[0]) # 劳斯莱斯 0 表示第一个元素
print(list2[-1]) # 9.54 -1 表示最后一个元素
# len() 表示获取元素的个数
print(len(list2)) # 9
print(list2[2]) # 兰博基尼
print(list2[-4]) # 秦
2.3、修改元素
语法: 列表名[索引] = 值
list2 = ['劳斯莱斯','迈巴赫','兰博基尼','G63','MODEL-Y','秦',123,True,9.54]
print(list2) # ['劳斯莱斯', '迈巴赫', '兰博基尼', 'G63', 'MODEL-Y', '秦', 123, True, 9.54]
list2[3] = '奔驰G63'
print(list2)# ['劳斯莱斯', '迈巴赫', '兰博基尼', '奔驰G63', 'MODEL-Y', '秦', 123, True, 9.54]
2.4、遍历元素
list2 = ['劳斯莱斯','迈巴赫','兰博基尼','G63','MODEL-Y','秦',123,True,9.54]
# 第一种方式:
# 遍历列表
# 第一种方式:
for i in list2:
print(i)#得到的是每一项
# 第二种方式:
#len(list2)代表列表的长度
for i in range(len(list2)):
#i得到的是每一项的序号
print(list2[i])
# 第三种方式: enumerate() 同时遍历索引和元素
for k,v in enumerate(list2): # k表示索引 v表示值
print(k,v)
2.5、列表元素的合并
list1 = [2,345,7,63,57]
list2 = ['荔枝','龙岩','火龙果','芒果','橙子']
print(list1,list2)
# 通过 + 实现列表的合并
list3 = list1 + list2
print(list3) # [2, 345, 7, 63, 57, '荔枝', '龙岩', '火龙果', '芒果', '橙子']
2.6、列表元素重复拼接
# 通过 * 号实现
list1 = [1,2,3]
list2 = list1 * 4
print(list2) #[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
2.7、判断元素是否在列表中
# 使用成员运算符 in和 not in
list1 = ['apple','banana','boy',12,True]
print('boy' in list1) # True
print('girl' in list1) # False
print('boy' not in list1) # False
2.8、列表的切片
上一节我们讲过字符串的切片,结合上一节的知识,一起来看列表的切片
- 语法: 列表名[开始下标:结束下标]
- 特点: 包含开始下标对应的元素 不包含结束下标对应的元素
list1 = [12,34,6,8,855,683,57]
# 语法: 列表名[开始下标:结束下标] 包含开始下标对应的元素 不包含结束下标对应的元素
print(list1[1:5]) # [34, 6, 8, 855]
print(list1[:4]) # [12, 34, 6, 8] 在切片时,若未写开始下标,默认从第一个元素开始截取
print(list1[1:]) # [34, 6, 8, 855, 683, 57] 在切片时,若未写结束下标,从开始下表的位置一直截取到最后
print(list1[:]) # [12, 34, 6, 8, 855, 683, 57]
print(list1[-2:]) # [683, 57]
print(list1[::-1]) # [57, 683, 855, 8, 6, 34, 12] # 翻转列表
3、列表的功能
3.1、append() 向尾部追加元素
# 1.1 append() 向尾部追加元素
list1 = ['番茄','西红柿','柿子','黄瓜']
# 追加单个元素
list1.append('苹果')
# 追加多个元素,不能直接追加,必须是以列表的方式进行追加.会改变原列表的维度
list1.append(['黎','芒果'])
print(list1)#['番茄', '西红柿', '柿子', '黄瓜', '苹果', ['黎', '芒果']]
3.2、extend()用于在列表末尾一次性追加多个元素
list1 = ['番茄', '西红柿', '柿子', '黄瓜', '苹果', ['黎', '芒果']]
list1.extend('追加的数据')
print(list1)# ['番茄', '西红柿', '柿子', '黄瓜', '苹果', ['黎', '芒果'], '追', '加', '的', '数', '据']
3.3、insert(要插入位置的下标,要插入的元素)
在列表中指定的位置插入元素,后面的元素依次后延
list2 = ['秦始皇','汉武帝','隋文帝','唐太宗','宋太祖']
list2.insert(1,'秦二世')
print(list2) # ['秦始皇', '秦二世', '汉武帝', '隋文帝', '唐太宗', '宋太祖']
# 若想一次性插入多个元素,使用列表的方式实现
list2.insert(2,['刘病已','刘秀'])
print(list2) # ['秦始皇', '秦二世', ['刘病已', '刘秀'], '汉武帝', '隋文帝', '唐太宗', '宋太祖']
3.4、删除元素
# pop() 传输的参数是下标,若未传参数,表示默认删除最后一个元素
list1 = ['刘备','关羽','张飞','赵云','马超']
print(list1) # ['刘备', '关羽', '张飞', '赵云', '马超']
list1.pop() # 表示删除最后一个元素
print(list1) # ['刘备', '关羽', '张飞', '赵云']
list1.pop(1) # 表示删除下标为1的元素
print(list1) # ['刘备', '张飞', '赵云']
# remove() 传输的参数是要删除的元素
list2 = ['曹操','司马懿','曹丕','夏侯惇','许褚']
print(list2) # ['曹操', '司马懿', '曹丕', '夏侯惇', '许褚']
list2.remove('曹丕')
print(list2) # ['曹操', '司马懿', '夏侯惇', '许褚']
# clear() 表示清空列表
list3 = ['孙权','周瑜','黄盖','鲁肃','陆逊']
print(list3) # ['孙权', '周瑜', '黄盖', '鲁肃', '陆逊']
list3.clear()
print(list3) # []
3.5、获取元素
list1 = [34,57,43,68,2548,437]
# 获取元素的最大值 max()
print(max(list1)) # 2548
# 获取元素的最小值 min()
print(min(list1)) # 34
# 获取指定元素的索引 index()
print(list1.index(68)) # 3
3.6、reverse()翻转列表元素,在原列表的内部进行翻转,不会生成新列表
list1 = [12,34,56,78,91]
#下面是两种反转的方式
#1、list1[::-1]
print(list1[::-1])#[91, 78, 56, 34, 12]
#2、reverse
list1.reverse()
print(list1) # [91, 78, 56, 34, 12]
3.7、排序
list2 = [52,34,26,48,91]
# sort() 排序 默认是升序 不会生成新列表
# 升序
list2.sort()
print(list2) # [26, 34, 48, 52, 91]
# 降序. reverse=True
list2.sort(reverse=True)
print(list2) # [91, 52, 48, 34, 26]
# sorted() 也可以实现对列表元素进行排序. 排序的结果会生成一个新列表 默认是升序
list3 = [34,54,12,3,57]
# 升序
list4 = sorted(list3)
print(list4) # [3, 12, 34, 54, 57]
# 降序 reverse=True
list5 = sorted(list3,reverse=True)
print(list5) # [57, 54, 34, 12, 3]
#
list1 = ['a','hello','boy','girl']
# 按照元素的长度进行排序
list2 = sorted(list1,key=len)
print(list2) # ['a', 'boy', 'girl', 'hello']
4、多维列表
4.1、一维列表
list1 = [12,3,56,68,46]
print(list1) # [12, 3, 56, 68, 46]
4.2、 二维列表
list2 = ['白酒','啤酒','红酒',['白兰地','人头马','威士忌','伏特加']]
print(list2) # ['白酒', '啤酒', '红酒', ['白兰地', '人头马', '威士忌', '伏特加']]
#获取数据的时候,列表[3]得到数组['白兰地','人头马','威士忌','伏特加'],再获取[1]得到人头马
print(list2[3][1]) # 人头马
4.3、 三维列表
list3 = ['白酒','啤酒','红酒',['白兰地','人头马','威士忌','伏特加',['百威','乌苏','大绿棒子']]]
print(list3[3][4][1]) # 乌苏
目前列举的数据最多到三维,现实中可以遇到多维数组,本质是一样的。