10-9 重要的内置函数(zip、filter、map、sorted)

reverse----reversed

l = [1,2,3,4,5,6]
l.reverse() #不会保留原列表
print(l)

l =[1,2,3,4,5,6]
l2 = reversed(l)    #保留原列表,返回一个反向的迭代器
print(l2)   #结果:<list_reverseiterator object at 0x00497350>

format:< ---表示左对齐,>表示右对齐,^表示居中

print(format('nice','<20'))
print(format('nice','>20'))
print(format('nice','^20'))

结果:

nice
nice
nice

重要内置函数

  all

    接收可迭代对象,全部元素都为真结果才为True,有一个元素为假,结果都为False
print(all(['a','',123]))#False
print(all(['a',123]))#True
print(all(['a',0,123]))#False

  any

    接收可迭代对象,全部元素都为假结果才为False,有一个元素为真,结果都为True

print(any(['a','',123]))#False
print(any(['a',123]))#True
print(any(['a',0,123]))#False

  zip()

     拉链方法:返回一个迭代器

l1 = [1,2,3]
l2 = ['a','b','c','d']
l3 = ('*','**','***')
d = {'k1':1,'k2':2}
for i in zip(l1,l2,l3,d):
    print(i)
结果:
(1, 'a', '*', 'k1')
(2, 'b', '**', 'k2')

  filter()

     filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

     http://www.cnblogs.com/Eva-J/articles/7266192.html

def is_odd(x):
    return x % 2 == 1
list = filter(is_odd,[1,3,4,5,6,7,8,9,12])
list_odd =[]
print(list) #返回一个迭代器
for i in list:
    list_odd.append(i)
print(list_odd)     #结果[1, 3, 5, 7, 9]

例子:请利用filter()过滤出1~100中平方根是整数的数
from math import sqrt
def zheng(x):
    if sqrt(x) % 1==0:
        return x
list = filter(zheng,range(1,101))
list_odd =[]
for i in list:
    list_odd.append(i)
print(list_odd)     #结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  map()

    接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
result = map(abs,[1,-4,3])
print(result)
for i in result:
    print(i)
总结:
filter
1.执行了filter之后的结果,集合中的数<=执行之前的数
2.filter只管筛选,不会改变原来的值
map
执行前后元素个数不变
值可能发生变化

  sorted

    http://www.cnblogs.com/Eva-J/articles/7265992.html
参数说明:
iterable:是可迭代类型;
key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,默认升序。
返回值:有序列表
l1 = [1,3,5,-2,-4,-6]
l1.sort()       #在原列表的基础上进行排序
print(l1)   #[-6, -4, -2, 1, 3, 5]

l1.sort(key=abs)       #在原列表的基础上进行排序
print(l1)       #[1, -2, 3, -4, 5, -6]
#sorted()执行后,原列表依然存在
print(sorted(l1))       #[-6, -4, -2, 1, 3, 5]
print(sorted(l1,reverse=True))       #[5, 3, 1, -2, -4, -6]

  

#例子:按照长度排序
l = [' ',[1,2],'hello world','hfj']
new_l = sorted(l,key=len)
print(new_l)        #[' ', [1, 2], 'hfj', 'hello world']

  

posted @ 2018-10-09 09:04  大脸猫12581  阅读(206)  评论(0编辑  收藏  举报