首页 > 解决方案 > 如何从列表中删除列表

问题描述

我创建了一个列表,在其中我试图仅消除第一个值大于它的第二个值的列表。

我尝试使用要删除的元素创建第二个列表,但我认为这不是最佳方式。

#y = []

x = [[1, 4], [1, 6], [2, 5], [2, 7], [4, 8], [6, 5], [6, 7], [2, 6], [3, 7], [5, 8], [6, 4], [7, 5]]
for i in range(len(x)):
    if x[i][0] > x[i][1]:
        print(x[i])


#        y.append(x[i])

有没有实现这一目标的最佳方法?

我希望在屏幕上打印时得到以下信息:

[[1, 4], [1, 6], [2, 5], [2, 7], [4, 8], [6, 7], [2, 6], [3, 7], [ 5, 8]]

此致,

标签: pythonpython-3.xlistfor-loop

解决方案


这应该有效:

y = [[a,b] for a,b in x if a <= b]

测试:

>>> x = [[1, 4], [1, 6], [2, 5], [2, 7], [4, 8], [6, 5], [6, 7], [2, 6], [3, 7], [5, 8], [6, 4], [7, 5]]
>>> y = [[a,b] for a,b in x if a < b]
>>> y
[[1, 4], [1, 6], [2, 5], [2, 7], [4, 8], [6, 7], [2, 6], [3, 7], [5, 8]]
>>> 

推荐阅读