在python中有'lambda'表达式的问题

问题描述 投票:-1回答:2

我有以下问题解决问题

[请使用生成器编写程序以打印偶数0和n之间以逗号分隔的形式,而n由控制台输入。

示例:如果以下n作为程序输入:10然后,程序的输出应为:0,2,4,6,8,10。

下面是我的答案

n=int(input("enter the number of even numbers needed:"))
eve=''
st=(lambda x:(for i in range(0,x))[(str(i)) if i%2==0 else (",")])(n)

但是,我对具有lambda的第三行有问题

python syntax
2个回答
0
投票
n=int(input("enter the number of even numbers needed: "))
def sample(x):
    for i in range(x+1):
        if i%2==0:
            yield i
for i in sample(n):
    if i!=n:
        print(i,end=", ")
    else:
        print(str(i)+".")

0
投票

我为您做了作业:

>>> fn = lambda x: (f"{i}," for i in range(0, x))
>>> ''.join(list(fn(10)))
'0,1,2,3,4,5,6,7,8,9,'
>>> 
>>> fn(10)
<generator object <lambda>.<locals>.<genexpr> at 0x107f67660>
© www.soinside.com 2019 - 2024. All rights reserved.