这是我调试时的python列表
list: [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]]
现在我需要把它转换成这个类型列表
list: [1,2,3,4,5]
请建议我实施这一点。
您可以使用列表理解构建列表:
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]
或者,将map与operator.itemgetter一起使用:
In [13]: import operator
In [14]: map(operator.itemgetter(1), seq)
Out[14]: [1, 2, 3, 4, 5]
我不推荐这个解决方案,这只是为了展示另一种方法:
>>> 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)
如果我是对的,那么试试这个:
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]