面试题-1

工作中常用的高阶函数:

filter(): 

Python内建的filter函数用于过滤序列。

和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

例如以下方法可用于在爬虫获取数据之后清洗掉换行符和空元素
table1 = html.xpath('/html/body/div[2]/div[3]/div[1]/h1//text()') # 提取小区名和地址 table1 = list(map(lambda item: re.sub('\s+', '', item), table1)) # 去掉换行符制表符 table1 = list(filter(None, table1)) # 去掉上一步产生的空元素

 

sorted():

接收一个比较函数来实现自定义的排序。

def reversed_cmp(x, y):
    if x > y:
        return -1
    if x < y:
        return 1
    return 0

传入自定义的比较函数reversed_cmp,就可以实现倒序排序

>>> sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]

 

map():

接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

>>> map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])
['1', '2', '3', '4', '5', '6', '7', '8', '9']

像上面的函数直接转成字符串

 

闭包是什么?

我们在外部函数中又定义了内部函数,并且,内部函数可以引用外部函数的参数和局部变量,当外部函数返回内部函数时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”

 

简述一下多进程,多线程,协程?

 进程是资源分配的最小单位,线程是CPU调度的最小单位.

 

posted @ 2019-11-14 20:06  lattesea  阅读(133)  评论(0编辑  收藏  举报