如何将字母移位的列表推导式转换为Lambda函数实现?
问题解决:用Lambda+Map实现字母移位处理
你的代码问题出在使用了filter,它会把空格和z直接从处理序列中剔除,导致最终结果丢失这些字符。正确的实现不需要filter,直接在map的Lambda函数里完成所有判断逻辑,和你写的列表推导式逻辑对齐即可。
修改后的代码:
sentence = 'the quick brown fox jumps over the lazy dog' result = "".join(map(lambda letter: chr(ord(letter) + 1) if letter not in ("z", " ") else letter, sentence))
逻辑说明:
- 直接遍历原字符串的每一个字符,无需过滤
- 对每个字符做判断:如果是空格或
z就直接保留,否则将ASCII码加1后转回字符 - 最后用
join拼接所有处理后的字符,得到符合要求的结果
运行后输出即为预期的:uif rvjdl cspxo gpy kvnqt pwfs uif mbzz eph
内容的提问来源于stack exchange,提问作者rpicoder
相关产品推荐
相关产品推荐

