对于一个“有趣”的项目,我想做一个fizzbuzz单行。我相信逻辑是好的,现在我只是坚持如何一次为它提供100个值。这就是我到目前为止所做的:
print(map(lambda x : return (lambda x : return 'fizzbuzz' if x%15 == 0 else return 'fizz') if x%3 == 0 else (return lambda x : (return 'fizzbuzz' if x%15 == 0 else return 'buzz') if x%5 == 0 else (return x)), range(1, 100)))
错误似乎在最后,我正在使用map函数。我如何给lambda函数赋予一系列值?
答案 0 :(得分:2)
我对您的代码进行了一些编辑,以使其工作。不应在lambda函数中使用return
关键字,也不应为每个条件嵌套lambda。最后,您需要将输出转换为某种可打印格式(我选择了一个列表):
print(list(map(lambda x: 'fizzbuzz' if x%15 == 0 else 'fizz' if x%3 == 0 else 'buzz' if x%5 == 0 else x, range(1, 100))))
答案 1 :(得分:2)
lambda
函数不需要return
语句。相反,将评估:
之后的代码并返回结果值:
final_values = map(lambda x:'fizzbuzz' if x%5 == 0 and x%3 == 0 else 'buzz' if x%5 == 0 else 'fizz' if x%3 == 0 else x, range(1, 100))