我该怎么转换这个:
[[], [], [('ef', 1)], [], [('cd', 3)], [('ab', 2)]]
进入这个:
[[], [], ['ef', 1], [], ['cd', 3], ['ab', 2]]
我知道要将元组转换为列表,我们只需使用list(元组),或者如果它是[(1,2),(3,4)]这样的列表,我们就可以使用map。我如何处理主列表中列表中的元组,而空列表保持不变?
答案 0 :(得分:10)
>>> my_list = [[], [], [('ef', 1)], [], [('cd', 3)], [('ab', 2)]]
>>> [list(*el) for el in my_list]
[[], [], ['ef', 1], [], ['cd', 3], ['ab', 2]]
答案 1 :(得分:5)
>>> l = [[], [], [('ef', 1)], [], [('cd', 3)], [('ab', 2)]]
>>> import itertools
>>> [list(itertools.chain(*item)) for item in l]
[[], [], ['ef', 1], [], ['cd', 3], ['ab', 2]]
这也将处理每个列表元素的多个元组(如果这是所需的):
>>> l = [[], [], [('ef', 1)], [], [('cd', 3),('ab', 2)]]
>>> [list(itertools.chain(*item)) for item in l]
[[], [], ['ef', 1], [], ['cd', 3, 'ab', 2]]
答案 2 :(得分:4)
这样的事情:
>>> lis = [[], [], [('ef', 1)], [], [('cd', 3)], [('ab', 2)]]
>>> [list(x[0]) if x else x for x in lis]
[[], [], ['ef', 1], [], ['cd', 3], ['ab', 2]]