列表知识点


常用操作

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值