def f(x):
if'a'<x<'z':
return(chr(ord(x)-32))
if'A'<x<'Z':
return(chr(ord(x)+32))
a=map(f,['a','d','H'])
print(list(a))
结果:
[None, 'D', 'h']
求解答一下:为什么a的转换不是A,而是None呀
因为a不满足条件啊,即不大于'a',也不小于'Z'
除非你把 if 'a'<x<'z' 换成 if 'a'<=x<='z'
同样的,下面判断大写字母的语句最好也改成 if 'A'<=x<='Z'
除了if判断要用<=外,还有加上一句return x
否则列表中有字母外的字符会被转成None的
>>> def f(x):
if 'a'<=x<='z':
return chr(ord(x)-32)
if 'A'<=x<='Z':
return chr(ord(x)+32)
return x
>>> [*map(f,['a','d','H','4'])]
['A', 'D', 'h', '4']
如有帮助,请采纳!