在列表中执行逐元素差异:Lambda 与列表理解
查找列表中相邻元素之间的差异是常见操作编程。在 Python 中,有多种方法可以实现此目的,包括使用 lambda 表达式或列表推导式。
Lambda 表达式:
lambda 表达式可用于创建函数即时运行,然后可用于对列表中的每个元素进行操作。例如:
<code class="python">t = [1, 3, 6] differences = list(map(lambda i, j: j - i, t[:-1], t[1:]))</code>
在这种情况下,lambda 函数 lambda i, j: j - i 从第 (i) 个元素中减去第 (i) 个元素。然后,映射函数将此函数应用于列表中的每对相邻元素。
列表理解:
列表理解提供了一种简洁的方法来创建基于新列表的方法在现有列表上。以下列表理解执行与上面的 lambda 表达式相同的操作:
<code class="python">differences = [j - i for i, j in zip(t[:-1], t[1:])]</code>
zip 函数将列表中的相邻元素配对,并且列表理解对这些对进行迭代。对于每一对 (i, j),它计算差异 j - i。
比较:
两种方法都有其优点和缺点。 Lambda 表达式的用途更加广泛,可以用于更广泛的情况。然而,列表推导式通常更简洁、更容易阅读。
示例:
给定列表 t = [1, 3, 6],lambda 表达式列表理解将产生以下输出:
[2, 3]
这是因为第一个差异(3 - 1) 是 2,第二个差值 (6 - 3) 是 3。
以上是Lambda 与列表推导式:哪种最适合 Python 列表中的元素差异?的详细内容。更多信息请关注PHP中文网其他相关文章!