展平列表清单

时间:2017-05-19 04:15:08

标签: python

嘿,我无法尝试将列表列入一个请帮助:





我想要:


&#xA ;
  a = [['a'],'b','c','d','e']
  

&# xA;

成为:




  a = ['a','b','c','d','e']& #xA;  




感谢




2 个答案:

答案 0 :(得分:4)

只要你的列表不能嵌套多个深层,你可以这样做:

def flatten(lst):
    for el in lst:
        if isinstance(el, list):
            yield from el
        else:
            yield el

然后在结果上调用list,如果你真的需要它作为列表(通常是迭代器就可以)。

a = [['a'], 'b', 'c', 'd', 'e']
flat_a = flatten(a)  # not a list, but an iterator that returns flat values
flat_a_as_lst = list(flat_a)  # actually a list

答案 1 :(得分:1)

尝试迭代列表的所有子列表。对于您的列表a

a = [['a'], 'b', 'c', 'd', 'e']
flat_a = [subitem for item in a for subitem in (item if isinstance(item, list) else [item])]

编辑:考虑了亚当斯的评论。