一、认识列表
1.什么是列表(list)
列表是容器型数据类型,可变(支持元素的增加、删除、修改、查)并且有序(支持下标操作)
将[]作为容器的标志,里面的元素用逗号隔开
[98, 39, 58, 94]
['小明', '小强', '小张']
2.列表中的元素
"""
1)任何类型的数据都可以作为列表的元素,例如:数字、字符串、列表、字典、
元祖、函数,自定义类型等
2)同一个列表中的不同元素的类型不一样
"""
list1 = [10, 'n', True, [1, 2], {'a': 1}]
print(list1) # [10, 'n', True, [1, 2], {'a': 1}]
3.查 - 获取列表中的元素
1)获取单个元素:list[下标]
name_list = ['张学友', '刘德华', '蔡琴', '艾弗森', 'MJ', '周星驰']
print(name_list[1]) # 刘德华
print(name_list[-1]) # 周星驰
2)获取部分元素(切片):列表[开始下标:结束下标:步长]
"""
列表切片和字符串切片语法一样,但是字符串切片的结果是字符串,列表切片的结果是列表
空列表:[]
"""
print('a') # a
print(name_list[1:4]) # ['刘德华', '蔡琴', '艾弗森']
3).遍历
"""
a.直接遍历
for 变量 in 列表:
循环体
变量直接取列表中的每个元素
"""
for name in name_list:
print(name)
b.通过遍历下标取遍历列表
for index in range(len(name_list)):
print(index, name_list[index])
for index in range(-1, -len(name_list)-1, -1):
print(index, name_list[index])
二、增删改
增、删、改对应的操作都会修改原列表,不会产生新的列表
1.增(在列表中添加元素)
1)列表.append(元素) - 在列表的最后添加一个元素
2)列表.insert(下标, 元素) - 在列表指定的下标前插入指定元素
2.删除列表中的元素
1)del 列表[下标] - 删除列表中指定下标对应的元素
2)列表.remove(元素) - 删除列表中第一个指定元素(只删除第一个)
注意:被删除的元素如果不存在会报错
3)列表.pop() - 取出列表中最后一个元素,返回被取出来的数据
列表.pop(下标) - 取出列表中指定下标对应的元素
3. 修改列表中某个元素的值
列表[下标] = 新值 - 将列表中指定下标的元素设置为新值
films = ['变形金刚', '无间道', '窃听风云', '流浪地球']
films[1] = '加勒比海盗'
print(films) # ['变形金刚', '加勒比海盗', '窃听风云', '流浪地球']
scores = [89, 59, 43, 100, 98, 30, 70, 45, 57, 88]
index = 0
while index < len(scores):
if scores[index] < 60:
del scores[index]
continue #index -= 1
index += 1
print(scores)
scores = [89, 59, 43, 100, 98, 30, 70, 45, 57, 88]
temp = scores[:] # 备份
print(id(temp), id(scores))
for score in temp:
if score < 60:
scores.remove(score)
print(scores)
三、列表相关的运算
1.数学运算:+,*
1)列表1 + 列表2 - 将两个列表中的元素合并产生新的列表
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
print(list1 + list2) # [1, 2, 3, 'a', 'b', 'c']
2)列表N - 将列表中的元素重复N次产生一个新的列表
print(list13) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
2.比较运算:==,!= 比较大小没有意义
print(list1 == [1, 2, 3]) # True
print(list1 == [1, 3, 1]) # False
print([1, 2, 3] > [2, 1]) # False
3. in 和not in
元素 in 列表 - 判断列表中是否存在指定的元素
name_list = ['路飞', '柯南', '鸣人', '佐助', '宝儿姐']
print('娜美' in name_list) # False
print('路飞' in name_list) # True
4.len(序列) - 获取序列中元素
5.list(数据) - 将数据转换成列表
1)所有的序列都可以转换成列表,bool不行
2)将序列的元素作为列表元素
list3 = list('hello')
print(list3) # ['h', 'e', 'l', 'l', 'o']
list4 = list(range(5)) # [0, 1, 2, 3, 4]
print(list4)