python学习笔记(10) 重要内置函数filter和map

filter()  #将内容按规则过滤

def is_odd(x):

  return x%2 == 1

ret = filter(is_odd,[1,2,3,4,5,6,7,8,9])

print(ret)    #返回迭代器,节约内存

for i in ret:

  print(i)

#效果等同列表表达式 [i for in in[1,2,3,4,5,6,7,8,9] if i % 2 ==1]

#filter里的函数可以很复杂

################################################

 求1-100内平方根是整数的

from math inport sqrt

def func(x):

  res = sqrt(x)

  return res %1 ==0

ret = filter(func,range(1,101))

###############################################

map()  #将内容按规则处理

ret = map(abs,[1,-4,6,-8])

for i in ret

  print(i)

################################################

sorted()  #按规则排序,生成新列表(占内存),.sort改原列表

l = [1,-4,6,5,-10]

l.sort(key = abs)  #key = 后面跟函数,abs,len之类的

print(l)

print(sorted(l,key = abs,reverse = Ture))

#按长度排序:

l = ['     ',[1,2],'Hello world']

lis1 = sorted(l, key=len)

print(lis1)

猜你喜欢

转载自www.cnblogs.com/farion/p/9877214.html