更多pythonic方法,只从嵌套列表的子列表中选择一些元素

时间:2012-03-27 13:44:26

标签: python

我在做

result = []
for item in tmp_result:
    tmp = []
    tmp.append(item[0])
    tmp.append(item[2])
    tmp.append(item[3])
    result.append(tmp)

如何让这段代码更加Pythonic?

4 个答案:

答案 0 :(得分:4)

概括:

indexes = 0, 2, 3
result = [[item[i] for i in indexes] for item in tmp_result]

请参阅list comprehensions上的Python文档。

答案 1 :(得分:3)

我可能会这样做:

result = [[item[0], item[2], item[3]] for item in tmp_result]

答案 2 :(得分:2)

如果您没有任何约束,可以使用numpy。它更高效,更优雅,您只需要:

>> import numpy
>> a = numpy.array([[1,2,3], [1,2,3]])
>> a[:,1]
array([2,2])
>> a[:,[2,3]]
array([2,3], [2,3])

答案 3 :(得分:0)

尝试列表推导:

result.extend([ [i[0], i[2], i[3]] for i in tmp_result])