如何选择元组列表中的增加元素?

我有以下元组列表:

a = [(1, 2), (2, 4), (3, 1), (4, 4), (5, 2), (6, 8), (7, -1)]

我想选择元组中第二个值与前一个元素相比增加的元素.例如,我会选择(2,4),因为4优于2,与我选择(4,4)和(6,8)的方式相同.

这可以以比第二个元素明确开始的循环更优雅的方式完成吗?

为了澄清,我想选择第二个元素优于前一个元组的第二个元素的元组.

最佳答案 您可以使用列表推导相当容易地执行此操作:

a = [a[i] for i in range(1, len(a)) if a[i][1] > a[i-1][1]]

这使用范围(1,len(a))从列表中的第二个元素开始,然后将每个元组中的第二个值与前一个元组中的第二个值进行比较,以确定它是否应该在新列表中.

或者,您可以使用zip生成成对的邻近元组:

a = [two for one, two in zip(a, a[1:]) if two[1] > one[1]]
点赞