# 一.列表
# 能装东西的东西 列表中装的数据是没有限制的,大小基本上够用
# 列表用[]表示
# 有索引和切片 [start,end,step]
###增删改查 (重点)
# 1.新增
# appent(), insert(), 增加 extend()迭代增加
##append()追加,效率高
# lst = []
# lst.append('周杰伦') #追加 在最后添加
# lst.append('周冬雨')
# lst.append('周公瑾')
# print(lst)
##insert() 插入,效率低
# lst = ['刘德华', '渣渣','古天乐','陈小草']
# lst.insert(2,'马布里') #插入,可能会导致元素移动 #古天乐往后移
# print(lst)
##extend() 增加,可迭代 里面加可迭代对象
# lst = ['刘浩然', '张一山', '徐峥', '黄渤']
# lst.extend(['刘能','赵四','啊啊'])
# lst.extend('刘能')
# print(lst)
lst = ['刘浩然', '张一山', '徐峥', '黄渤']
lst.extend([1, 2, 3])
print(lst) # ['刘浩然', '张一山', '徐峥', '黄渤', 1, 2, 3]
# 2.删除 pop, remove, clear, del
##pop
# lst = ['刘能','广坤','皮皮虾','阿里']
# lst.pop() 把最后一个元素弹出
# print(lst)
lst.pop(index) 把索引位置的元素弹出
# lst = ['刘能','广坤','皮皮虾','阿里']
# s1 = lst.pop()
# print(s1)
# s2 = lst.pop()
# print(s2)
# print(lst)
# 阿里
# 皮皮虾
# ['刘能', '广坤']
##remove 删除指定内容
# lst = ['刘能','广坤','皮皮虾','阿里']
# lst.remove('广坤')
# lst.remove('皮皮虾')
# print(lst)
##clear 清空
#lst = ['语文','数学','地理','化学','生物']
# lst.clear() #清空
# print(lst)
##del 可以切片删除
# lst = ['语文','数学','地理','化学','生物','政治']
# del lst[2]
# del lst[0:3]
# del lst[::2]
# print(lst)
#
# 3.修改
# lst = ['语文','数学','地理','化学','生物','政治']
# lst[2] = 'aaa'
# lst[-2] = 'sss'
# lst[1:3] = ['ddd'] # 相当于把[1:3]删除,在索引1位置插入'ddd' #不加[]会进行迭代,从切片设定的索引1位置迭代着增加 lst = 'ddd' ['语文', 'd', 'd', 'd', '化学', '生物', '政治']
# lst[1:5:2] = ['dd','dss'] #注意如果步长不是1,需要匹配个数, 此时可不加[],多个替换对象不会进行迭代
#
# 4.查
# for el in list: #element元素
# el
# 5. 操作
# lst.count('输入要计数的内容')
# lst.sort() #排序
# lst.sort(reverse=True) #倒序,降序排序
# lst.reverse() #翻转
# print(len(lst)) #len内置函数,求长度,和字符串一样
#
# print(lst)
# ------------------------------------------------
#索引
# lst = ['情深深雨蒙蒙','还珠格格','紫薇', False, True, 500000000,3.14, ['郭德纲', [42, '啊'],'刘壮实','杨幂']]
#列表也有索引
#print(lst[3]) #False
#print(lst[-4]) #True
#print(lst[0][1:3]) 深深
#切片 [start, end, step]
#print(lst[1:3])
#print(lst[1:5:2])
#出来的还是列表
#列表的嵌套
# lst = ["周润发", "周星驰", "周笔畅", "周公瑾", ["九品芝麻官", ["吴孟达", "alex", "林雪"],"算死草", "赌侠", "赌圣", "整蛊专家"]]
#
# lst[4][1][1] = lst[4][1][1].capitalize()
# print(lst)
#将alex进行首字母大写
# 二.元组 tuple
# 元组是不可变的列表,使用()表示,元素与元素之间只用逗号隔开,数据类型没限制
# 元组是只读列表
# () 在计算机中还表示算数的优先级
# 当用一个元素时,必须加逗号 (1,) 类型是tuple (1)类型是int
# 空元组用 tuple()表示 tu = tuple() #空元组
# lst = list() # [] 空列表
tuple 操作: count计数, index查询, len长度, __iter__迭代, __init__ #初始化
#元组也有索引和切片,和列表一样,和字符串也一样
# 元组也有索引和切片 和列表一样和字符串也一样
# tu = ("iphone", "nokia", "砸核桃", "Lenovo", "HTC", "Honor")
# print(tu[-1])
# print(tu[1:3])
# print(tu[1:5:2])
#不可变指的是第一层元素不可变,第二层取决于数据类型
# tu = (1, 2, 5, ["胡辣汤", "滋滋冒油的大猪蹄子", "酱猪肘", "香喷喷的米饭", "脆皮炸鸡"])
# tu[3].append("锅包肉")
# print(tu)
#列表和元组都可以进行嵌套
# range()
# range(100) 0-99
# range(start, end) 从start到end 顾头不顾尾
# range(start, end, step)
#
# 遍历列表的时候可以用range
# for i in range(len(list)):
# list[i]
#-------------------------------------------------------------
# tu = ("孙悟空", "白骨精", "哪吒", "二师兄", "妲己")
#
# for el in tu: # element 元素
# print(el)