1、对可迭代对象进行排序:sorted
-
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
-
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
a = [{'name':'xiaoming','age':18,'gender':'male'},{'name':': xiaohong','age':20,'gender':'female'}]
b = sorted(a,key=lambda x: x['age'],reverse=True)
Out[8]:
[{'name': ': xiaohong', 'age': 20, 'gender': 'female'},
{'name': 'xiaoming', 'age': 18, 'gender': 'male'}]
2、操作函数对象
创建函数对象的list,根据想要调用的index,方便统一调用。
def f():
print('i\'m f')
def g():
print('i\'m g')
[f,g][1]()
i'm g
[f,g][0]()
i'm f
3、枚举对象:enumerate
enumerate(sequence, [start=0])
- sequenceDiagram – 一个序列、迭代器或其他支持迭代对象。
- start – 下标起始位置
In [1]: s = ["a","b","c"]
...: for i ,v in enumerate(s,1):
...: print(i,v)
...:
1 a
2 b
3 c
4、查看变量所占字节数:sys.getsizeof
In [1]: import sys
In [2]: a = {'a':1,'b':2.0}
In [3]: sys.getsizeof(a) # 占用240个字节
Out[3]: 240
5、过滤器:filter
在函数中设定过滤条件,迭代元素,保留返回值为True的元素
filter(function, iterable)
参数
- function – 判断函数。
- iterable – 可迭代对象。
In [1]: fil = filter(lambda x: x>10,[1,11,2,45,7,6,13])
In [2]: list(fil)
Out[2]: [11, 45, 13]
6、反向迭代器:reversed
reversed(seq)
参数
- seq – 要转换的序列,可以是 tuple, string, list 或 range。
In [1]: rev = reversed([1,4,2,3,1])
In [2]: for i in rev:
...: print(i)
...:
1
3
2
4
1
7、链式操作
from operator import (add, sub)
def add_or_sub(a, b, oper):
return (add if oper == '+' else sub)(a, b)
add_or_sub(1, 2, '-') # -1