在列表中执行逐元素差异:Lambda 与列表理解
查找列表中相邻元素之间的差异是常见操作编程。在 Python 中,有多种方法可以实现此目的,包括使用 lambda 表达式或列表推导式。
Lambda 表达式:
可以使用 lambda 表达式创建函数动态,然后可用于对列表中的每个元素进行操作。例如:
t = [1, 3, 6]
differences = list(map(lambda i, j: j - i, t[:-1], t[1:]))
在这种情况下,lambda函数 lambda i, j: j - i从第 (i 1) 个元素中减去第 (i) 个元素。然后,map 函数将此函数应用于列表中的每对相邻元素。
列表推导式:
列表推导式提供了一种简洁的方法来创建基于列表的新列表在现有列表上。以下列表理解执行与上面的 lambda 表达式相同的操作:
differences = [j - i for i, j in zip(t[:-1], t[1:])]
zip 函数将列表中的相邻元素配对,并且列表理解迭代这些对。对于每一对 (i, j),它计算差异 j - i。
比较:
两种方法都有其优点和缺点。 Lambda 表达式的用途更加广泛,可以用于更广泛的情况。然而,列表推导式通常更简洁、更容易阅读。
示例:
给定列表 t = [1, 3, 6],两个 lambda 表达式列表理解将产生以下输出:
[2, 3]
这是因为第一个差值 (3 - 1) 为 2,第二个差值 (6 - 3) 为 3。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3