1

这是我调试时的python列表

list: [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]]

现在我需要把它转换成这个类型列表

list: [1,2,3,4,5]

请建议我实施这一点。

4

3 回答 3

7

您可以使用列表理解构建列表:

In [11]: seq
Out[11]: [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]]

In [12]: [item[1] for item in seq]
Out[12]: [1, 2, 3, 4, 5]

或者,将mapoperator.itemgetter一起使用:

In [13]: import operator

In [14]: map(operator.itemgetter(1), seq)
Out[14]: [1, 2, 3, 4, 5]
于 2013-05-15T10:53:22.517 回答
3

我不推荐这个解决方案,这只是为了展示另一种方法:

>>> L = [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]]
>>> zip(*L)[1]
(1, 2, 3, 4, 5)

但是,如果您还访问其他每个列,这将很有用:

>>> cols = zip(*L)
>>> cols[0]
(4, 4, 4, 4, 4)
>>> cols[1]
(1, 2, 3, 4, 5)
于 2013-05-15T10:57:29.913 回答
0

如果我是对的,那么试试这个:

my_list_ids = [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]]
[my_id for list_ids in my_list_ids for my_id in list_ids if my_id]

输出:

[4, 1, 4, 2, 4, 3, 4, 4, 4, 5]
于 2013-05-15T11:16:27.237 回答