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']