一:列表的类型转换
要点:列表类型转换只支持能够for循环的数据类型
# 1.元组
print(list((1, 2, 3, 4, 5)), type(list((1, 2, 3, 4, 5))))
# 运行结果:[1, 2, 3, 4, 5] <class 'list'>
# 2.字符串
print(list('nihao'), type(list('nihao')))
# 运行结果:['n', 'i', 'h', 'a', 'o'] <class 'list'>
# 3.集合
print(list({1, 2, 3, 4, 5}), type(list({1, 2, 3, 4, 5})))
# 运行结果;[1, 2, 3, 4, 5] <class 'list'>
# 4.字典
print(list({'name': 'zhang', 'age': 18}), type(list({'name': 'zhang', 'age': 18})))
# 运行结果:['name', 'age'] <class 'list'>
二:索引取值
l1 = [1, 'zhang', 3, 4, 5, 6, [9, 8, 7]]
# 1.索引取值
print(l1[2])
# 运行结果:3
print(l1[100]) # 超过范围会报错
三.切片取值
# 2.切片取值(和字符串取值的方法一样,只是取到的最单位是一个数据值)
print(l1[:]) # 这个是取到整个列表中的值
# 运行结果:[1, 'zhang', 3, 4, 5, 6, [9, 8, 7]]
print(l1[1:5]) # 1表示开始取值的索引(包含),5表示结束取值的索引(不包含)
# 运行结果:['zhang', 3, 4, 5]
print(l1[-4:-1]) # -4表示开始取值的索引(包含),-1表示结束取值的索引(不包含)
# 运行结果:[4, 5, 6]
print(l1[-1:-4:-1]) # -1表示开始取值的索引(包含),-4表示结束取值的索引(不包含),-1决定取值的方向是从右往左
# 运行结果:[[9, 8, 7], 6, 5]
print(l1[::2]) # 2表示间隔数
# 运行结果:[1, 3, 5, [9, 8, 7]]
四.修改值
l1 = [1, 'zhang', 3, 4, 5, 6, [9, 8, 7]]
l1[6] = 100000
print(l1)
五.增加值
# 方法1:尾部追加元素
new_list.append(2)
print(new_list)
# [0, 2]
# 方法2:插入元素
new_list1 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
new_list1.insert(5, 3) # 5表示要插入数据值的索引,3是要插入的值
print(new_list1)
# [1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1]
new_list1.insert(100, 3) # 当索引大于列表当前最大索引时,值会插入到列表最后,而不报错
print(new_list1)
# [1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3]
# 方法3:扩展元素
new_list1.extend([111, 111, 111, 111, 111, 111, 111]) # 会将新的列表的值全部添加都要添加的列表中去
print(new_list1)
# [1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 111, 111, 111, 111, 111, 111, 111]
六.删除值
l1 = [1, 2, 3, 4, 5, 6, 7, 8]
# 方法1:根据索引删除元素
del l1[0]
print(l1)
# [2, 3, 4, 5, 6, 7, 8]
# 2.方法2:通过值移除元素
l2 = [1, 2, 3, 4, 5, 6, 7, 8]
l2.remove(8)
print(l2)
# [1, 2, 3, 4, 5, 6, 7]
# 方法3:通过索引弹出元素
l3 = [1, 2, 3, 4, 5, 6, 7, 8]
print(l3.pop(0))
# 1
七.其他补充方法
# 1.清空列表
l1 = [1, 2, 3, 4, 5, 6]
l1.clear()
print(l1)
# []
# 2.统计元素出现的次数
l1 = [1, 2, 3, 4, 5, 6, 6, 6]
print(l1.count(6))
# 3
# 3.逆转列表
l1 = [1, 2, 3, 4, 5, 6, 6, 6]
l1.reverse()
print(l1)
# [6, 6, 6, 5, 4, 3, 2, 1]
# 4.复制一个新列表
l1 = [1, 2, 3, 4, 5, 6, 6, 6]
l2 = l1.copy()
print(l2)
# [1, 2, 3, 4, 5, 6, 6, 6]
# 5.查找索引(从前往后依次查,查到第一个将不再往下查)
l1 = [1, 2, 3, 4, 5, 6, 6, 6]
print(l1.index(6))
# 5
# 6.排序
l1 = [4, 1, 6, 9, 3, 10, 7]
# 升序排序
l1.sort(reverse=False)
print(l1)
# [1, 3, 4, 6, 7, 9, 10]
l2 = [4, 1, 6, 9, 3, 10, 7]
# 降序排序
l2.sort(reverse=True)
print(l2)
# [10, 9, 7, 6, 4, 3, 1]