1、N变量赋值
2、星号表达式
作用 1)变量省略
若 grade中有24个变量, *middle 中包含22个变量
*args星号表达式在迭代元素为可变长元组的序列
3、保留最后 N 个元素
使用collections.deque ((maxlen=N) :构造函数会新建一个固定大小的队列
优点:优雅并且运行得更快(比列表实现)
4、查找最大或最小的 N 个元素
heapq 模块有两个函数:nlargest() 和 nsmallest()
heapq 模块 中的堆排序:
5、创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。
PS:OrderedDict 内部维护着一个根据键插入顺序排序的双向链表。
6、字典的运算
9、查找两字典的相同点 (利用& ,-)
a.items()=dict_items([('x', 1), ('y', 2), ('z', 3)])
想实现字典的remove (移除指定元素) :
a={'x':1,"y":2,"z":3} b={k:a[k] for k in a.keys()-{'x','z'}} print(b) #{'y': 2}
10、 删除序列相同元素并保持顺序
def deque(nums): group=set() for i in nums: if i not in group: yield i group.add(i) print(list(deque([1,2,3,3,59,6,6]))) #[1, 2, 3, 59, 6]
删除相同元素加排序:
def deque(nums): group=set() for i in nums: if i not in group: group.add(i) return group print(list(deque([1,2,3,3,59,6,6]))) #[1, 2, 3, 6, 59]
复杂版本:
def deque(nums,key=None): group=set() for i in nums: tmp=i if key==None else key(i) print(tmp) #(1, 2) (1, 3) (1, 2) if tmp not in group: yield i group.add(tmp) # return group a=[{'x':1,'y':2},{'x':1,'y':3},{'x':1,'y':2}] b=list(deque(a,key=lambda i:(i['x'],i['y']) )) print(b)