python - 如何枚举/压缩为 lambda
问题描述
有没有办法在 Python 3groupList
中用 lambda 函数替换函数中的 for 循环,也许用.map()
def groupList(input_list, output_list=[]):
for i, (v, w) in enumerate(zip(input_list[:-2], input_list[2:])):
output_list.append(f'{input_list[i]} {input_list[i+1]} {input_list[i+2]}')
return output_list
print(groupList(['A', 'B', 'C', 'D', 'E', 'F', 'G']))
(groupList
函数的输出为['A B C', 'B C D', 'C D E', 'D E F', 'E F G']
)
解决方案
解决方案1:
def groupList(input_list):
return [' '.join(input_list[i:i+3]) for i in range(len(input_list) - 2)]
解决方案2:
def groupList(input_list):
return list(map(' '.join, (input_list[i:i+3] for i in range(len(input_list) - 2))))
推荐阅读
- json - Swift 中 JSON 的变量结构
- vba - 将所有单词转换为标题大小写,首字母缩略词除外
- javascript - 公式更新单元格时运行 Google 表格脚本
- javascript - 如何在使用 knex.js 删除约束之前检查约束是否存在
- macos - Mac 命令行:如何使用实际内容创建日期重命名所有图片
- c# - Xamarin 窗体编辑器 LineBreakMode
- css - 如何在css中将根类变量选择到另一个类中
- django - 在生产模式下使用 nginx 时如何返回 Django 项目的错误消息
- ios - 完成处理程序无法在 swift 中正常工作
- python - 如何在 python 中识别 C++ 的 char(255)?