ber*_*c96 6 python string lambda list python-3.x
有没有办法将map()函数与字符串而不是列表一起使用?或者该map()函数仅适用于列表?
例如,忽略 lambda 函数的内容,此代码返回一个映射对象而不是字符串:
def rot_13(string):
    alph = 'abcdefghijklmnopqrstuwxyz'
    return str(map(lambda i: alph[(alph.find(i)+13) % len(alph)], string))
使用列表/生成器推导式比(更Pythonic)更好map():
def rot_13(string):
    alph = 'abcdefghijklmnopqrstuwxyz'
    return ''.join(alph[(alph.find(i)+13) % len(alph)] for i in string)
python3map返回一个生成器,所以你必须使用它,使用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