# 列表是python中最基本的数据结构,它是一个有序序列,序列中的每个元素都分配一个数字(位置,索引)
# 1、我们可以使用 方括号,中括号[]来创建列表
# 2、我们可以直接将序列放在list(seq)
# python中的列表是可变的,且列表内部由元素组成,元素可以是任意对象,也就是说列表的数据项不需要具有相同的类型,比如整形、浮点型、字符串、其他类的对象、实例等都可以作为列表的元素。
msg = [3,'v',['a',1,2],(1,2,3,4,5),{'a':11,'b':13}]
print(msg)
# 创建一个列表,两种方式
a = [1,2,3,4,5]
print(a)
print(type(a))
a1 = list("abcdef")
print(a1)
print(type(a1))
# 定义一个空列表
a2 = list()
a3 = []
print(a2,a3)
# 列表是有序的序列,存在下标index
# 索引从0开始
# 索引支持负数,负数从-1开始
# 查找列表单个字符
print(a1[2])
# 负数从右往左数 -1开始
print(a1[-2])
# 查找列表多个字符
print(a1[1:3])
# 列表常用操作
# 数据修改
# 数据删除
# 数据组合
# 数据重复
# 列表数据修改,只需要找到这个需要修改的元素,重新赋值
a1[2] = "123"
print(a1)
# 列表删除
del a1[3]
print(a1)
# 列表组合
print(a + a1)
# 列表重复
print(a1*3)
# 列表常用方法
# append 追加
# extend 扩展
# insert 插入
# pop 弹出
# remove 移除
# clear 清空
# index 查询索引
# reverse 反转
# sort 排序
# 单个追加
a.append(5)
print(a)
# 扩展,可批量追加
c = [6,7,8]
a.extend(c)
print(a)
# 插入,通过索引插入位置,在0位置插入0
a.insert(0,0)
print(a)
# 弹出,可通过索引弹出,不写默认末尾弹出
a.pop(2)
print(a)
# 移除 通过索引移除指定元素,移除1这个位置的元素
a.remove(1)
print(a)
# 清除 直接清除整个列表数据
a.clear()
print(a)
# 查询指定元素的位置
a.extend(c)
print(a)
print(a.index(7))
# 反转
a.reverse()
print(a)
# 排序
d = [9,2,4,6,12]
a.extend(d)
print(a)
a.sort()
print(a)
# 打印列表长度
msg = [1,2,3,4,5,6,7]
length = len(msg) # 长度
print(length)
msg1 = [1,2,3,4,"a","c","b","d"]
# 查找指定元素在列表里面的下标,若没有,则会报错
msg2 = msg1.index("a")
print(msg2)
msg3 = msg1.index("f")
print(msg3)
#指定从第几个下标开始查询
msg4 = msg1.index('Hello',1)
print(msg4)
# 统计指定元素的个数
msg5 = msg1.count('Hello')
print(msg5)