有没有办法将map()
函数与字符串而不是列表一起使用?或者map()
函数仅用于处理列表?
例如,忽略lambda函数的内容,此代码返回一个map对象而不是一个字符串:
def rot_13(string):
alph = 'abcdefghijklmnopqrstuwxyz'
return str(map(lambda i: alph[(alph.find(i)+13) % len(alph)], string))
答案 0 :(得分:1)
使用列表/生成器理解更好(更多Pythonic)到map()
:
def rot_13(string):
alph = 'abcdefghijklmnopqrstuwxyz'
return ''.join(alph[(alph.find(i)+13) % len(alph)] for i in string)
答案 1 :(得分:0)
python3 map
返回一个生成器,所以你必须使用它,使用str.join
是最简单的方法:
"".join(map(lambda i: alph[(alph.find(i)+13) % len(alph)], string))
它与此代码类似:
my_string = ""
for l in map(lambda i: alph[(alph.find(i)+13) % len(alph)], string):
my_string += l