总结
列表:列表时容器型数据类型,将[]作为容器标志,里面用多个元素用逗号隔开
例如:[元素1, 元素2, 元素3, 元素4…]
列表是可变且有序的
可变:指元素的人数,指和顺序可变
有序:列表元素有固定位置信息
元素:任何python支持的类型的数据都可以作为列表,同一个列表的元素类型可以不同
list = [] # 空列表
list5 = [10, 12.5, 'abc', True, [1, 2], (10, 20), {'a': 100}, lambda x: x*2]
查
获取单个元素
语法:列表[下标] ---------->获取列表中指定下标对应的元素
下标:下标又称为索引,代表元素在序列中的位置信息
下标值范围
- 元素从左往右对应的下标是从0开始依次增加
- 元素从右往左对应的下标是从-1开始依次减少
注意下标越界
遍历
- 直接获取元素
语法:
for 变量 in 列表:
循环体
- 通过下标遍历元素
len(列表) ------------> 获取列表长度(获取列表元素个数)
语法:
for 变量 in range(len(列表)):
循环体
- 切片(获取部分元素) ------> 返回也是列表
语法:
列表[开始下标:结束下标:步长]
步长为正:[开始下标,结束下标),从前往后,每次下标增加步长
步长为负:[开始下标,结束下标),从后往前,每次下标增加步长
1). 省略步长
列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]
默认步长为1
heroes = ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[1:5]) # ['后裔', '马可波罗', '虞姬', '孙尚香']
print(heroes[-5:-2]) # ['马可波罗', '虞姬', '孙尚香']
print(heroes[0:-3]) # ['鲁班7号', '后裔', '马可波罗', '虞姬']
print(heroes[-1:2]) # [] ---->默认步长为1,所以为空
2). 省略开始下标
列表[:结束下标:步长] == 列表[0:结束下标:步长]
如果步长为正:开始下标省略,就从第一个元素开始往后取
如果步长为负:开始下标省略,就从最后一个元素开始往前取
列表[:结束下标] == 列表[0:结束下标:1]
heroes = ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[:3]) # ['鲁班7号', '后裔', '马可波罗']
print(heroes[:3:-1]) # ['百里守约', '狄仁杰', '孙尚香']
print(heroes[:-3:1]) # ['鲁班7号', '后裔', '马可波罗', '虞姬']
print(heroes[:-5:-2]) # ['百里守约', '孙尚香']
print(heroes[:4:3]) # ['鲁班7号', '虞姬']
3). 省略结束下标
列表[开始下标::步长]
列表[开始下标:]
步长为正:结束下标省略,从开始下标开始从前往后取,取到最后一个元素为止。
步长为负:结束下标省略,从开始下标开始从后往前取,取到第一个元素为止。
heroes = ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[1:]) # ['后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[-3:]) # ['孙尚香', '狄仁杰', '百里守约']
print(heroes[2::2]) # ['马可波罗', '孙尚香', '百里守约']
print(heroes[-3::-1]) # ['孙尚香', '虞姬', '马可波罗', '后裔', '鲁班7号']
4). 省略开始下标,结束下标,步长
print(heroes[::2]) # ['鲁班7号', '马可波罗', '孙尚香', '百里守约']
print(heroes[:]) # ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[::-1]) # ['百里守约', '狄仁杰', '孙尚香', '虞姬', '马可波罗', '后裔', '鲁班7号']
增
往列表中增加元素
1). 列表.append(元素) - 在指定列表的最后追加一个指定的元素
number = [1, 2, 3, 4, 5, 6]
number.append[7]
print(number)
[1, 2, 3, 4, 5, 6, 7]
2). 列表.insert(下标, 元素) - 在列表指定下标对应元素**前
**插入指定元素
number = [1, 2, 3, 4, 5, 6]
number.insert(2, '内容') ---->(下标,插入的元素)
print(number)
[1, '内容', 2, 3, 4, 5, 6 ] ---->对应元素前面插入内容
删
删除列表中某个元素
1). 语法:del 列表[下标] - 删除列表中指定下标对应的元素(下标不能越界)
a.删除指定变量
name = '小明'
del name
print(name)
b.删除列表中指定元素
nums = [10, 1, 2, 32]
del nums[-1]
print(nums)
结果
[10, 1, 2]
c.删除整个列表
del nums
print(nums)
2). 列表.remove(元素) - 删除列表中指定元素(如果指定元素有多个,只删最前面那一个;如果指定元素不存在,会报错!)
TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年']
TVs.remove('甄嬛传')
print(TVs)
['琅琊榜', '破产姐妹', '庆余年']
3). 列表.pop() - 取出列表中最后一个元素,并且返回
列表.pop(下标) - 取出列表中指定下标对应的元素,并且返回
TVs = ['琅琊榜', '破产姐妹']
del_item = TVs.pop()
print(TVs, del_item)
['琅琊榜'] 破产姐妹
改
1). 改 - 修改元素的值。
语法:列表[下标] = 值 - 将列表中指定下标对应的元素修改成指定的值
subjects = ['高数', '大物', 'C语言', '毛概']
subjects[0] = '英语'
print(subjects)
['英语', '大物', 'C语言', '毛概']
in和not in
值 in 列表 - 判断列表中是否存在指定值对应的元素
值 not in 列表 - 判断列表中是否不存在指定值对应的元素
返回值为布尔值
TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年', '白夜追凶']
print('甄嬛传' in TVs) # True
print('甄嬛传2' in TVs) # False