首页 > 解决方案 > 如何枚举/压缩为 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']

标签: pythonpython-3.xlambda

解决方案


解决方案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))))

推荐阅读