如何根据特定条件选择列表的一部分

时间:2015-09-01 07:22:58

标签: python list selection

我想做以下事情:

L = [(1,2),(3,4),(5,6)]
new_list = list( element in L for i,j in L if i >1 and j >4)

new_list的结果为[(5,6)]

我知道如何为1-d列表执行此操作,例如:

L1 = [1,2,3,4]

new_L1 = list( i for i in L1 if i>1 )

但是我不知道如何在python中为多维列表做类似的事情。

2 个答案:

答案 0 :(得分:1)

你可以正常迭代元组:

new_l = [tup for tup in L if tup[0] > 1 and tup[1] > 4]

答案 1 :(得分:1)

您可以将嵌套元组解压缩到主循环中所需的变量中:

[(i, j) for i, j in L if i > 1 and j > 4]

请注意,您必须重建'左侧表达式中的原始元组。

或者,使用索引来处理元素:

[elem for elem in L if elem[0] > 1 and elem[1] > 4]

请注意,我在这里使用了list comprehension(您在list()函数中使用了生成器表达式,从而以不太有效的方式获得了类似的结果。)< / p>