python - 列表和 lambda 表达式

标签 python

首先大家好,我有一个小问题。我正在尝试学习如何使用 lambda 表达式等...我有这段代码,它是我需要复制的示例。

>>>something (lambda x:x+1, lambda y:y+10, [1, 2, 3, 4])
[2, 12, 4, 14]

我需要那个输出,到目前为止我得到了这个:

l = [1,2,3,4]
def result(l):
    o = l[0::2]
    o2 = l[1::2]
    p = map(lambda x:x+1,o)
    p2 = map(lambda y:y+10,o2)
    return p,p2

首先,我知道我要返回 2 个单独的列表,我正在尝试找出其中一个。

有没有办法在不将 p 和 p2 分开的情况下做到这一点? 像这样:

p = map(lambda x,y: x+1 x+10, o,o2) 

我知道这条线不起作用我只是想说明我的问题

最佳答案

您错误地使用了那些 lambda 函数。为什么要使用多个 lambda 函数来处理一个简单的列表?您可以只使用一个列表理解:

r = [1, 2, 3, 4]
func = lambda x: [v+1 if i%2==0 else v+10 for i,v in enumerate(x)]
func(r)
# [2, 12, 4, 14]

为了可读性,您甚至可能更愿意为此编写一个适当的函数。

或者更好的是,您甚至可以完全不使用 lambda 函数:

[v+1 if i%2 == 0 else v+10 for i,v in enumerate(x)]

关于python - 列表和 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37842903/

相关文章:

python - 在 Django 中使用交互式控件制作 Bokeh 图

python - 如何在 groupby 2 列之后保留 DataFrame 的原始索引?

python - Sqlite3游标实时更新?

python - PySide 中 Qt.escape 的替代品?

python - 在 python 中使用 sleep 制作一个计时器。如何考虑计算时间?

python - 解释 WAV 数据

python - 如何在Python中填写插入语句的列名

python - numpy 中的窗口最大值

python - 如何安装imapclient

python - 无法使用 asyncio 和 aiohttp 将远程计算机上的大量帖子发送到本地