列表

  1. 下标
  2. 列表推导式 [for i in range(10)]
  3. 翻转
  4. 排序 sorted(nums) 返回新的排序好的数组,原数组不改变 nums.sort() 在原数组上排序
nums = [ 1, 4, 3, 2, 2 ]
print(sorted(nums))
print(nums)
# 对比
nums = [ 1, 4, 3, 2, 2 ]
nums.sort()
print(nums)
  1. 逆序排序 给排序函数的参数key传入一个匿名函数
nums = [ 1, 4, 3, 2, 2 ]
print(sorted(nums, key = lambda x : -x))
print(nums)
# 对比
nums = [ 1, 4, 3, 2, 2 ]
nums.sort(key = lambda x : -x)
print(nums)
  1. 多字段排序

给多个字段排序,比如姓名 + 成绩,成绩相同按从大到小排列,成绩相同时按姓名字典序

# 多字段排序 1

scores = [
    ("SunWuKong", 92), 
    ("ShaWuJing", 90),
    ("TangSanZang", 100),
    ("BaiLongMa", 90),
    ("ZhuBaJie", 87)
    ]

print(sorted(scores))


print(sorted(scores, key = lambda x : (-x[1], x[0])))
# 多字段排序 2

scores = [
    ("SunWuKong", 92), 
    ("ShaWuJing", 90),
    ("TangSanZang", 100),
    ("BaiLongMa", 90),
    ("ZhuBaJie", 87)
    ]

print(sorted(scores))

def my_cmp(x, y):       # 返回-1的条件中,x > y是从大到小,x < y是从小到大
    if x[1] < y[1]:     
        return 1
    elif x[1] > y[1]:   # 主要填写部分,按第二项从高到低排序
        return -1
    else :              
        if x[0] > y[0]:
            return 1
        elif x[0] < y[0]:   # 成绩相同按姓名字典序排序,小的在前
            return -1
        else:
            return 0

from functools import cmp_to_key

print(sorted(scores, key = cmp_to_key(my_cmp)))

字符串

字典

deque 队列 栈

  1. deque 双端队列,可以用来当作队列和栈
  2. deque的构建
from collections import deque
dq1 = deque()           # deque([])
dq2 = deque([1, 2, 3])  # deque([1, 2, 3])
dq3 = deque("12345")    # deque(['1', '2', '3', '4', '5'])
dq4 = deque(range(5))   # deque([1, 2, 3, 4, 5])
  1. 头尾添加和删除元素 append和appendleft 为添加,pop和popleft为删除并返回元素
# 将deque当作栈(先进后出)来使用
stack = deque([1, 2, 3])    # deque([1, 2, 3])
stack.append(4)             # 压入栈顶 deque([1, 2, 3, 4])
top = stack.pop()           # 弹出栈顶元素 4 deque([1, 2, 3])
print(stack[-1])            # 获取栈顶元素 3

# 将deque当作队列(先进先出)使用
queue = deque([1, 2, 3])    # deque([1, 2, 3])
queue.appendleft(0)         # 进入队尾 deque([0, 1, 2, 3])
top = queue.pop()           # 弹出队头元素 3 deque([0, 1, 2])
print(queue[0])             # 获取队尾元素 0

优先队列

集合

0 条评论

目前还没有评论...