Python学习(六)

一、循环调用函数filter和map

sorted()可以对字符串进行排序,并已列表的形式展现,传入reverse=True参数,可使字符串倒序展示。

s='478142'
l = ['42','2','1','a','c','z','f']
print(sorted(l,reverse=True))
print(sorted(s))

>>['z', 'f', 'c', 'a', '42', '2', '1']
>>['1', '2', '4', '4', '7', '8']

map函数与其他方法对比:

 生成一个列表,从1-33,1位自动补0,即01-33:

首先先自己写一个zifill方法,方便下面调用

def zfill(num):
    num = str(num)
    if len(num)==1:
        num = '0'+num
    return num

方法一:

l = []
for i in range(1,34):
    result = zfill(i)
    l.append(result)
print(l)

>>['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33']

方法二:

l = [ zfill(i) for i in range(1,34) ]
print(l)

>>['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33']

方法三,使用map:

这里map的作用就是,循环zfill函数。map()是 Python 内置的高阶函数,在Python3.0版本中,它接收一个函数 function 和一个 list,并通过把函数 function 依次作用在 list 的每个元素上,返回一个list的遍历对象。如果想得到一个list列表,则用list(map())进行强制转换。而在Python2.0中是返回一个list列表。

l = list(map(zfill,range(1,34)))
print(l)

>>['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '
23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33']

 

posted @ 2019-05-10 17:11  江堰  阅读(170)  评论(0编辑  收藏  举报