Python 将map()函数与字符串一起使用

Python 将map()函数与字符串一起使用,python,string,python-3.x,list,lambda,Python,String,Python 3.x,List,Lambda,有没有办法将map()函数与字符串而不是列表一起使用?或者map()函数仅用于处理列表 例如,忽略lambda函数的内容,此代码返回一个映射对象而不是字符串: def rot_13(string): alph = 'abcdefghijklmnopqrstuwxyz' return str(map(lambda i: alph[(alph.find(i)+13) % len(alph)], string)) 与map()相比,使用列表/生成器理解更可取(更具Pythonic):

有没有办法将
map()
函数与字符串而不是列表一起使用?或者
map()
函数仅用于处理列表

例如,忽略lambda函数的内容,此代码返回一个映射对象而不是字符串:

def rot_13(string):
    alph = 'abcdefghijklmnopqrstuwxyz'
    return str(map(lambda i: alph[(alph.find(i)+13) % len(alph)], string))

map()
相比,使用列表/生成器理解更可取(更具Pythonic):


map()
相比,使用列表/生成器理解更可取(更具Pythonic):


python3
map
返回一个生成器,因此您必须使用它,使用是最简单的方法:

"".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

python3
map
返回一个生成器,因此您必须使用它,使用是最简单的方法:

"".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

map
在Python3中返回一个生成器,请尝试:
return”“.join(list(map(lambda i:alph[(alph.find(i)+13)%len(alph)],string))
您可以将字符串转换为类似于
a_list=list(a_string)
@MauriceMeyer map返回一个映射对象,而不是生成器的列表<代码>贴图始终返回贴图对象。不管你睡多晚。它可以与任何iterable一起使用。
map
在Python3中返回一个生成器,请尝试:
return”“。join(list(map(lambda i:alph[(alph.find(i)+13)%len(alph)],string))
可以将字符串转换为类似于
a_list=list(a_string)
@MauriceMeyer map返回一个映射对象,而不是generatories<代码>贴图始终返回贴图对象。不管你睡多晚。它是用来处理任何iterable的。谢谢,我认为这是最好的方法谢谢,我认为这是最好的方法
map
不返回生成器,它返回一个map对象,它是迭代器,但不是生成器。
map
不返回生成器,它返回一个map对象,它是迭代器,但不是生成器。