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))
Run Code Online (Sandbox Code Playgroud)
使用列表/生成器推导式比(更Pythonic)更好map():
def rot_13(string):
alph = 'abcdefghijklmnopqrstuwxyz'
return ''.join(alph[(alph.find(i)+13) % len(alph)] for i in string)
Run Code Online (Sandbox Code Playgroud)
python3map返回一个生成器,所以你必须使用它,使用str.join是最简单的方法:
"".join(map(lambda i: alph[(alph.find(i)+13) % len(alph)], string))
Run Code Online (Sandbox Code Playgroud)
它类似于以下代码:
my_string = ""
for l in map(lambda i: alph[(alph.find(i)+13) % len(alph)], string):
my_string += l
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33547 次 |
| 最近记录: |