再看廖雪峰老师的博客时,有这样的练习,记录下来,以备像我一样的自学者参考。
题目:
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']
答案:
def normalize(name):
return name.capitalize()
L1=['adam','LISA','barT']
L2=list(map(normalize,L1))
print(L2)
结果:
['Adam', 'Lisa', 'Bart']
这里用到了一个Python内置函数 capitalize() ,它的作用就是把字符串的首字母大写,其余小写。
我自己想的另一个方法:
def normalize(name):
return name[0].upper()+name[1:].lower()
L1=['adam','LISA','barT']
L2=list(map(normalize,L1))
print(L2)
这地方比较绕弯的是,L2=list(map(normalize,L1)) 这里给normalize 函数传值的时候,传的是L1的元素,也就是adam 等值,因为字符串本身就是个序列,可迭代。所以 当 name = adam 时,name[0] 就是 a 啦。后面以此类推。
map函数相当于自带了一个循环,可以把L1内的元素,挨个的放到normalize 函数里运行。