# 列表的特性:
'''
1.像字符串一样有索引和切片
2.索引如果超过范围会报错
3.可以用for循环进行遍历
4.用len可以拿到列表的长度
'''
# 列表的增删改查
# lst = []
# 向列表中添加内容
# 1.append() 追加
# lst.append("tom")
# lst.append("帅哥")
# # 2.insert() 插入
# lst.insert(0, "李四")
# # 3.extend() 可以合并两个列表,批量的添加
# lst.extend(["王五","老赵"])
# output: ['李四', 'tom', '帅哥', '王五', '老赵']
# print(lst)
# # 从列表中删除
# ret = lst.pop(3) # 给出被删除的索引,返回被删除的元素
# print(lst)
# print(ret)
# lst.remove("tom") # 删除某个元素(*)
# print(lst)
# # 修改
# lst[4] = "老炮" #直接用索引就可以进行修改操作
# print(lst)
# # 查询
# print(lst[4])
# # 小练习
# # 把所有姓王的人修改成姓张
# lst = ['李四', 'tom', '帅哥', '王五', '老炮', "王二"]
# for i in range(len(lst)):
# item = lst[i]#
# if item.startswith("王"):
# # 张
# new_name = "张"+item[1:]
# print(new_name)
# # 把新名字换回列表
# lst[i] = new_name
# print(lst)
# 列表的其他操作(补充)-------------
# 排序
# lst = [1,2,3,4,5,"老王"] #列表会按照你存放的顺序来保存
# print(lst)
# lst = [222,333,555,666,444,234,123,111]
# lst.sort() #对列表进行升序排序
# lst.sort(reverse=True) #reverse:反转
# print(lst)
# 列表的嵌套
# lst = ["acb", "dev", "abd", "dvss", ["呵呵","哈哈", ["asdf","呼吸"], "ttt"],"ooo"]
# print(lst[4][2][1])
# 列表的循环删除(*)
# lst = ['李四', 'tom', '帅哥', '王五', "王大", '老炮', "王二"]
# for item in lst:
# if item.startswith("王"):
# lst.remove(item) # 有BUG,不报错
# print(lst) # ['李四', 'tom', '帅哥', '王大', '老炮'] 未删除干净
# lst = ['李四', 'tom', '帅哥', '王五', "王大", '老炮', "王二"]
# temp = [] #准备一个临时列表,负责存储要删除的内容
# for item in lst:
# if item.startswith("王"):
# temp.append(item)
# # lst.remove(item)
# # print(lst) # ['李四', 'tom', '帅哥', '王大', '老炮'] 未删除干净
# for item in temp:
# lst.remove(item)
# print(lst)