Python 3.x Python函数式编程的小难题

Python 3.x Python函数式编程的小难题,python-3.x,functional-programming,Python 3.x,Functional Programming,输入是一行中的两个整数,x和y。我需要写一个基本上只有一行的程序,用x和y做不同的事情,然后打印结果。比如说,输出应该是x+1,y*y。或列表(范围(x)),y//2。不管是什么操作,但不同。无def功能,也禁止使用“if”和“for”。据我所知,应该是这样的: print( *map( lambda x: ??? , map( int, input().split() ) ) ) (但lambda只能对两

输入是一行中的两个整数,x和y。我需要写一个基本上只有一行的程序,用x和y做不同的事情,然后打印结果。比如说,输出应该是x+1,y*y。或列表(范围(x)),y//2。不管是什么操作,但不同。无def功能,也禁止使用“if”和“for”。据我所知,应该是这样的:

print(
    *map(
        lambda x: ??? ,
        map(
            int, input().split()
        )
    )
)
(但lambda只能对两个输入执行相同的操作,对吗?)
我知道这是可能的,我已经考虑了三天,但都没有结果。很可能我遗漏了一些非常明显的内容。

您的
lambda
函数可以将
x
y
转换为几乎任何表达式。然后调用该函数,在
lambda

print(*(lambda x, y: (x+1, y*y))(*map(int, input().split())))
print(*(lambda x, y: (list(range(x)), y//2))(*map(int, input().split())))

这似乎很管用:

print(
    *(lambda x: [int(x[0]) + 1, int(x[1]) * int(x[1])])(
        input().split()
    )
)

不需要花哨的功能技巧或
map

对吗?错。您可以将任意多个参数传递给
lambda
。输入多个参数-是。输出一个元组-是。问题是输出=输入的固定函数。通常人们会简单地写:x,y=map(int(input().split())print(x+1)print(y*y),但它必须在没有中间x,y的情况下完成,并且在一行中
*map(…)
是您所需要的。谢谢!我确实有一个心理障碍:)非常简单谢谢!我确实有一个思维障碍:)在我的课程中,之前的几项任务都是地图、过滤器等方面的繁重任务。