利用 map() 函数,把用户输入否认不规范的英文名字,变为首字母大写,其他小写的规范名字。输入 : [‘adam’,’LISA’,’barT’], 输出 :[‘Adam’,’Lisa’,’Bart’]:
def normalize(name):
for n in name:
return n[:1].upper()+n[1:].lower()
L1=[‘adam’,‘LISA’,‘barT’]
L2=list(map(normalize,L1))
print(L2)
这样写的结果返回却是['A','L','B']
主要是map()函数的原因。让我们先看看map()函数的参数。map()函数有两个参数,一个是函数名,另一个是可迭代对象,根据本题,一个函数时normalize函数,另一个是列表L1,map()函数的作用是将函数作用到可迭代对象的每一个元素。所以造成了上述返回结果。
经过更改,这样可以运行:
def normalize(name):
return name[:1].upper()+name[1:].lower()
L1=[‘adam’,‘LISA’,‘barT’]
L2=list(map(normalize,L1))
print(L2)