为了账号安全,请及时绑定邮箱和手机立即绑定

加入python中的列表列表

加入python中的列表列表

富国沪深 2019-07-23 18:08:19
加入python中的列表列表在python中将列表列表加入单个列表(或迭代器)的简短语法是什么?例如,我有一个如下列表,我想迭代a,b和c。x = [["a","b"], ["c"]]我能想到的最好的是如下。result = [][ result.extend(el) for el in x] for el in result:   print el
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

如果你只是深入一级,嵌套的理解也会起作用:

>>> x = [["a","b"], ["c"]]>>> [inner...     for outer in x...         for inner in outer]['a', 'b', 'c']

在一行,这成为:

>>> [j for i in x for j in i]['a', 'b', 'c']


查看完整回答
反对 回复 2019-07-23
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

这被称为展平,并且有很多实现:

这个怎么样,虽然它只适用于1级深度嵌套:

>>> x = [["a","b"], ["c"]]>>> for el in sum(x, []):...     print el...a
b
c

从这些链接,显然最完整,快速优雅等实现如下:

def flatten(l, ltypes=(list, tuple)):
    ltype = type(l)
    l = list(l)
    i = 0
    while i < len(l):
        while isinstance(l[i], ltypes):
            if not l[i]:
                l.pop(i)
                i -= 1
                break
            else:
                l[i:i + 1] = l[i]
        i += 1
    return ltype(l)


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 508 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信