python面试常见问题3

zip 拉链 返回迭代器

enumerate 枚举 返回迭代器

dict(zip(("a","b),[1,2])) 字典

it=enumerate(["a","b],start=1) start指定枚举值

lambda 匿名函数:用一句话来表达只有返回值的无名函数

*arg 普通收集参数 收集多余没人要的普通实参

**kwargs 关键字收集参数 收集多余没人要的关键字实参

global 全局变量

filter map reduce 的作用

filter =>过滤数据

filter(函数,iterable)

保留偶数,过滤所有奇数

lst=[1,2,3,4,5]

it=filter(lambda x:True if x%2==0 else False,lst)

map=>处理(映射)数据

map(func,iterable)=>迭代器

lst=[1,2,3]

map(lambda x:x*3,lst)

print(list(lst))

reduce=>计算数据

reduce(func,interable)=>计算的结果

[5,4,8,8]=>5488

from functools import reduce

reduce(lambda x,y:x*10+y,lst)

python递归的最大层数

994~1000层

官方1000 实际994~1000

设置递归最大层数

import sys

sys.setrecursionlimit(99)

什么是迭代器,什么是可迭代对象

迭代器:迭代数据的工具

可迭代的对象:可以迭代的数据

把不能直接通过next获取的数据=>可以直接被next获取数据

具有 _ _ iter _ _() 和 _ _ next _ _()两个方法的是迭代器

具有 _ _ iter_ _()可迭代对象

生成器的本质就是迭代器 可以自定义迭代的逻辑

创建方式有两种

1.生成器表达式(推导式)

(i for i in range(10))

2.生成器函数(含有field关键字)

装饰器:在不改变原有代码情况下,为原函数扩展新功能

装饰器本质就是闭包

闭包:

1.互相嵌套的两个函数,内函数使用了外函数的局部变量

2.外函数把内函数返回出来的过程,是闭包,内函数是闭包函数

什么是反射及应用场景

通过字符串去操作类对象或者模块当中的属性方法

class abc():

a=1

def abc():

pass

obj.abc()

obj.a

obj.abc()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值