divmod函数
divmod(7,3) (2, 1) >>> a,b=divmod(7,3) >>> a 2 >>> b 1 >>> help(divmod)
divmod返回一个tuple ,(x//y,x%y)
enumerate(iterable)
返回的事一个迭代器,包含他的值和索引
for i in enumerate(l): print(i) (0, ‘a‘) (1, ‘b‘) (2, ‘c‘)
for i in enumerate(dic): print(i) (0, ‘name‘) (1, ‘age‘)
frozenset()创建一个被冰冻的集合,不可删除,不可添加
s=frozenset((1,2,3,4)) >>> s.pop() Traceback (most recent call last): File "<pyshell#23>", line 1, in <module> s.pop() AttributeError: ‘frozenset‘ object has no attribute ‘pop‘ >>> s.add(1) Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> s.add(1) AttributeError: ‘frozenset‘ object has no attribute ‘add‘
globals() locals() 返回字典形式的,当前范围内的全局变量/局部变量
def fun(): x=1 print(locals()) >>> fun() {‘x‘: 1} >>> def fun(): x=1 print(globals()) >>> fun() {‘__name__‘: ‘__main__‘, ‘__doc__‘: None, ‘__package__‘: None, ‘__loader__‘: <class ‘_frozen_importlib.BuiltinImporter‘>, ‘__spec__‘: None, ‘__annotations__‘: {}, ‘__builtins__‘: <module ‘builtins‘ (built-in)>, ‘a‘: 2, ‘b‘: 1, ‘l‘: [‘a‘, ‘b‘, ‘c‘], ‘i‘: (1, ‘age‘), ‘dic‘: {‘name‘: ‘egon‘, ‘age‘: 18}, ‘s‘: frozenset({1, 2, 3, 4}), ‘fun‘: <function fun at 0x0000000003600950>}
isinstance() 判断类型
type(s) <class ‘frozenset‘> >>> isinstance(s,frozenset) True
zip() 返回一个元组,参数为两个可迭代的对象。
l1=[1,2,3,4] >>> l2=[‘a‘,‘b‘,‘c‘,‘d‘] >>> l=zip(l1,l2) >>> type(l) <class ‘zip‘> >>> for i in l: print(i) (1, ‘a‘) (2, ‘b‘) (3, ‘c‘) (4, ‘d‘)
max() min() 返回最大值,最小值,参数可以是一个可迭代对象或者多个普通参数
匿名函数:
格式:lambda 参数,参数: 函数表达式
应用于一些很简单的函数,自带return 效果
map() ,映射函数
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回。
比如将一个列表的每个元素都平方得到一个新的序列,可以用map方法
def f(x): return x*x
>>> list(map(f,l)) [1, 4, 9, 16, 25]
reduce()函数
from functools import reduce
使用reduce,必须要导入from functools import reduce reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
from functools import reduce r=reduce(lambda x,y:x*y,[1,2,3,4,5]) print(r)
from functools import reduce # r=reduce(lambda x,y:x*y,[1,2,3,4,5]) # print(r) def char2num(s): return {‘0‘: 0, ‘1‘: 1, ‘2‘: 2, ‘3‘: 3, ‘4‘: 4, ‘5‘: 5, ‘6‘: 6, ‘7‘: 7, ‘8‘: 8, ‘9‘: 9}[s] r=map(char2num,‘13567‘) # for i in r: # print(i) r=list(r) print(r) n=reduce(lambda x,y:x*10+y,r) print(n)
filter函数和map类似,filter()
也接收一个函数和一个序列。和map()
不同的是,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素。
r=filter(lambda x:x%2 == 1,[1,2,34,5,7]) r=list(r) print(r)
时间: 2024-10-24 01:43:29