'''
概念:
数据结构有3种:
列表(链表): [], 支持遍历
元组 : ()
字典 : {}
'''
# list1 = [] # 空列表
# print(type(list1))
#
# list2 = [1,2,3,"没有",[9,"uu"]]
# print(list2)
#
# # 使用下标进行查看, 从0 开始
# print(list2[4][0])
# 常用函数
# list1 = [10,-27,7,9,-68.9]
# print(len(list1)) # 统计列表的长度,几个
# l1 = []
# print(len(l1))
# print(max(list1))
# print(min(list1))
# 列表的添加元素
# l1 = []
# l1.append("my") # 使用 append进行添加元素,末尾
# # print(l1)
# l1.append(4)
# # print(l1)
#
# l1.insert(0,"$") # 使用insert方法,需要传入2个参数, 第一个是 位置(从0开始) 第二个是 对象值
# print(l1)
#
# l2 = ["&","you"]
# l1.extend(l2) # 使用 extend 方法可以将 其他的列表追加到自己列表,放到末尾
# print(l1)
# 判断元素是否在列表中 使用 in
# print("my" in l1)
# 现有列表a = [1,2,1,3,6,2,1] 把列表a里面的重复数据去掉,添加到列表b里面.
# a = [1,2,1,3,6,2,1]
# b = []
# for i in a: # 使用遍历操作
# if i not in b: # 反向思维操作
# b.append(i)
# print(b)
# 列表的删除
a = [1,2,1,3,6,2,1]
# del a[1] # 使用del 删除时,需要传入下标
# print(a)
# a.remove(1) # 从左往右, 删除第一个元素,传入的是具体元素
# print(a)
# a.pop(100) # pop() 方法默认删除 最后一个, 如果传入具体的值,则指定删除
# print(a)
a.clear() # 列表清空,或者直接 a = []
print(a)
# 练习:现有列表 a = [1,2,1,1,1,1,1,3,6,2,1] ,删除列表里面所有的1
# 思路,只要1在列表中 我就删除1个 remove ,直到没有就退出
a = [1,2,1,1,1,1,1,3,6,2,1]
# while True:
# if 1 in a:
# a.remove(1)
# else:
# break
# print(a)
# while 1 in a:
# a.remove(1)
# print(a)
# # 列表的其他方法
# a = [1,2,3,1,4,5,6,""]
# # a.reverse()
# # print(a)
# # 排序 sort()
# # a.sort(reverse=True) # 默认升序 ,降序操作,reverse=True ,使用sort函数 只能包含数值
# # print(a)
# # count 计数
# print(a.count(1))
# # index 查看元素下标
# print(a.index(1)) # 返回元素第一个位置的下标
# a = [1,2,3,4,5]
# # 列表的修改
# a[1] = 10
# print(a)
# # 特殊情况 通过= 对 列表赋值操作, 最终指向的是一个东西 [] 是一个容器
# a = [1,2,3,4,5]
# b = a
# print(id(a),id(b))
# # b[1] = 10
# # print(a)
# # 变量的修改,互换变量
# a = 10
# b = 20
# # 引入第三个变量
# c = a
# a = b
# b = c
# print(a,b)
# a,b = b,a
# print(a,b)
# # 冒泡排序 list1 = [64, 34, 25, 12, 22, 11, 90]
# a = [1,2]
# a[0],a[1] = a[1],a[0] # 交换位置
# print(a)
# a = [1,2,3]
a = [64, 34, 25, 12, 22, 11, 90] # 需要 6+ 5 ....+1 ----外层6次
# for i in range(len(a)-1): # 6
# for j in range(len(a)-i-1): # 6 5 4 3 2 1
# if a[j] > a[j+1] :
# a[j],a[j + 1] = a[j+1],a[j]
# print(a)