常用操作
a = [10,20,30,40]
# 1.增加
#list.append(obj) 在列表末尾增加一个元素
# a.append(50)
# # a.append([20,30])
# print(a)
# list.extend(obj) obj 必须是序列,extend把序列中元素打散追加列表末尾
# a.extend([30,40])
# print(a)
# 在末尾增加元素
# a[len(a):] = [50,60,70]
# print(a)
# list.insert(i,obj) 在i指定位置插入元素,原来的元素后后移
# a.insert(0,100)
# 在下标为0的位置上插入100,110,120,下标为0的元素会被覆盖
# a[0:1] = [100,110,120]
# 覆盖下标为0和1的元素
# a[0:2] = [100,110]
# print(a)
# 2 删除元素
# list.pop(i=-1) 按下标删除,默认删除最后一个
# a.pop() # 删除最后一个元素
# a.pop(0)
# a[0:1] = []
# a.pop(4) # 下标不能越界
# print(a)
# list.remove(obj) 从左向右查找,删除找到的第一个值等于obj的元素
# a = [10,10,10,20,10,30,10,10,40]
# a.remove(10)
# while 10 in a:
# a.remove(10)
# print(a)
# 不安全 , 不要在遍历的时候删除
# for value in a:
# if value == 10:
# a.remove(value)
# print(a)
#del 删除
# del a[0:3] # 删除前三个
# del a[0]
# a[0:3] = [] # 删除前三个
#clear 清空列表
# a.clear()
#
# if a: # 空列表为假
# print("不为空")
# print(a)
# 3 查找
a = [10,10,10,20,10,30,10,10,40]
# index(obj,start=0,end=-1) 从左向右查找,找到第一个等于obj元素,返回下标,如果元素不存在,报valueerror
# print(a.index(30))
# print(a.index(130)) # ValueError: 130 is not in list
# if 130 in a:
# print(a.index(130))
# print(a.index(10))
# index(self, value, start=None, stop=None) start开始下标,stop是结束下标
# print(a.index(10,1,4))
# count(obj) 统计列表中有多少只等于obj的元素
# print(a.count(10))
# print(a.count(100000))
# 4 列表翻转
# 原列表翻转
# a = [10,20,30]
# print(id(a))
# a.reverse()
# print(a)
# print(id(a))
# 5 排序
a = [10,90,20,50,40]
a.sort() # 默认从小到大排序
# a.sort(reverse=True) # 默认从大到小排序
# print(a)
# 系统函数sorted
# print(id(a))
# res = sorted(a,reverse=True) # 返回新列表
# print(res)
# print(id(res))
# 排序的原理
"""
[90,30,80,20,60,5,77]
冒泡排序
# 第一趟排序
[30,90,80,20,60,5,77]
[30,80,90,20,60,5,77]
[30,80,20,90,60,5,77]
[30,80,20,60,90,5,77]
[30,80,20,60,5,90,77]
[30,80,20,60,5,77,90]
# 第2趟排序
[30,80,20,60,5,77,90]
[30,20,80,60,5,77,90]
[30,20,60,80,5,77,90]
[30,20,60,5,80,77,90]
[30,20,60,5,77,80,90]
# 第3趟
[20,30,60,5,77,80,90]
[20,30,5,60,77,80,90]
#第4趟
[20,30,5,60,77,80,90]
[20,5,30,60,77,80,90]
[20,5,30,60,77,80,90]
# 第5趟
[5,20,30,60,77,80,90]
"""
a = [90, 30, 80, 20, 60, 5, 77]
# 相邻元素的表示,可以使用 i,i+1下标相邻
# j = 0
# while j < len(a)-1:
# # 一趟排序
# i = 0
# while i < len(a)-1:
# if a[i] > a[i+1]:
# a[i], a[i+1] = a[i+1],a[i]
# i += 1
# j +=1
# print(a)
# j = 0
# while j < len(a)-1:
# # 一趟排序
# i = 0
# while i < len(a)-1:
# if a[i] > a[i+1]:
# a[i], a[i+1] = a[i+1],a[i]
# i += 1
# j +=1
# print(a)
# 改进
# j = 0
# while j < len(a)-1:
# i = 0
# while i < len(a)-1-j: # 不和已经有序的元素比较
# if a[i] > a[i+1]:
# a[i], a[i+1] = a[i+1],a[i]
# i += 1
# j +=1
# print(a)
reverse = True
j = 0
while j < len(a)-1:
# 一趟排序
i = 0
while i < len(a)-1-j: # 不和已经有序的元素比较
if reverse:
if a[i] < a[i+1]:
a[i], a[i + 1] = a[i + 1], a[i]
else:
if a[i] > a[i+1]:
a[i], a[i+1] = a[i+1],a[i]
i += 1
j +=1
print(a)