内置函数2
五星函数*****
print() sum reversed
key : min max map sorted filter zip
1.和数据结构相关:
列表和元祖:
list,将一个可迭代对象转化为列表,如字典转化为列表(默认键字典的键转化)
tuple,将一个迭代对象转化为元祖,如字典转化为元祖(默认键字典的键转化)
reversed 将一个序列翻转,并返回翻转后的序列的迭代器*****
s = ['a','b','c','d'] a = reversed(s) for i in range(4): print(next(a))
slice :构造一个切片对象,用于切片 ***
s = [1,2,34,56,7,8,9,0,9] a = slice(1,5,2) print(s[a])
str:将数据转化为字符串
format,可用于格式化输出外,还可以用于计算小数,精算等**
print(format('test','<10')) print(format('test','>10')) print(format('test','^10'))
bytes, unicode转化bytes类型****
a1 = '黎明' print(a1.encode('utf-8')) print(a1.encode('utf-8').decode('utf-8'))
a2 = '李明' b2 = bytes(a2,encoding='utf-8') print(a2)
2.repr返回一个对象的string形式(原型毕露)*****
print('黎明') print(repr('黎明')) print(repr("{'黎明':'sf'}")) print(repr('人生%s年' % repr('千')))
3.sorted :对可迭代对象进行序列排序,形成一个新列表,原列表不变(可迭代对象需要时同一种数据类型)。 *****
s = ['w','e','r'] # s = [1,2,34,5,6,78] print(sorted(s)) print(s) d = sorted(s) print(d) print(s)
l2 = [(1,1000),(2,18),(4,250),(3,500)] print(sorted(l2)) def num(x): return x[1] print(sorted(l2,key=num))
多条件判断:all,any
all:可迭代对象中,全部为True 才是true
any:可迭代对象中,有一个True,为true
l1 = [1,2,3,44,(),] print(all(l1)) print(any(l1))
4.zip,将多个iter,每一个纵向组成一个元祖,并返回iter,以最短的为标准 *****
l1 = [1,2,3,6,7] tu1 = ('s','d', 'd', 'f') dic = {'天': '天1', '地':'地1', '人': '人1'} print(zip(l1,tu1,dic)) print(list(zip(l1,tu1,dic))) for i in zip(l1,tu1,dic): print(i)
filter :过滤,迭代器*****
l = [ i for i in range(12)] def num(x): return x % 2 == 1 print(list(filter(num,l)))
map:会根据提供的函数对指定序列做映射,循环模式:
l = [1,23,4,5,6,7,8] print([i**2 for i in l]) l = [i**2 for i in l] print(l) def num(x): return x**2 print(set(map(num,l))) print(list(map(num,l))) print(tuple(map(num,l)))
5.匿名函数:lambda表达式
普通函数,有且只有return的函数才可以用匿名函数优化,一行代码
def num(x): return x**2 num = lambda x:x**2
匿名函数一般跟内置函数配合使用
print(sorted([(1,1000),(2,18),(4,250),(3,500)],key=lambda x:x[1]))
6,:递归函数:默认递归深度998
def num(x): print(x) x += 1 num(x) num(1)
设置递归次数:
import sys sys.setrecursionlimit(10000) def num(x): print(x) x += 1 num(x) num(1)