python-17 高阶函数

高阶函数


enter description here
enter description here
enter description here
enter description here

sorted函数

enter description here
enter description here
enter description here

def sort(iterable, *, key=None, reverse=False):
    newlist =[]
    
    for x in iterable:
        
        for i,y in enumerate(newlist):
            if x > y:
                newlist.insert(i, x)
                break
        else:
            newlist.append(x)
            
    return newlist        

使用到 str() 函数,sort()属于高阶函数
enter description here
enter description here

enter description here

def sort(iterable, *, key=None, reverse=False):
    newlist = []
    
    for x in iterable:
        cx = key(x) if key else x 
        for i, y in enumerate(newlist):
            cy = key(y) if key else y
            comp = cx > cy if reverse else cx < cy
            if comp :
                newlist.insert(i, x)
                break
        else:
            newlist.append(x)
    return newlist

enter description here
enter description here

map函数

将map中的元素转化为另一种形式的元素

map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

enter description here
enter description here
enter description here

list(map(lambda x:1 ,range(5)))
list(map(lambda x:6-x ,range(5)))

m = map(lambda x,y: (x,y), 'abcdefg', range(5))
for x in m :
    print(x)
	
dict(map(lambda x,y: (x,y), 'abcdefg', range(5)))
dict(map(lambda x:x, zip('abcdefg', range(5))))
dict(map(lambda x:(x[0],str(x[1])), zip('abcdefg', range(5))))

dict(map(lambda x:(x%5, x), range(500)))
###########
{0: 495, 1: 496, 2: 497, 3: 498, 4: 499}

filter

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

enter description here
enter description here

posted @ 2022-04-22 09:59  何时&明月  阅读(26)  评论(0)    收藏  举报