猿问

加入python中的列表列表

加入python中的列表列表

在python中将列表列表加入单个列表(或迭代器)的简短语法是什么?

例如,我有一个如下列表,我想迭代a,b和c。

x = [["a","b"], ["c"]]

我能想到的最好的是如下。

result = [][ result.extend(el) for el in x] for el in result:
  print el


富国沪深
浏览 509回答 3
3回答

江户川乱折腾

如果你只是深入一级,嵌套的理解也会起作用:>>> 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']

慕虎7371278

这被称为展平,并且有很多实现:更多关于python flattenPython技巧在Python中展平列表这个怎么样,虽然它只适用于1级深度嵌套:>>>&nbsp;x&nbsp;=&nbsp;[["a","b"],&nbsp;["c"]]>>>&nbsp;for&nbsp;el&nbsp;in&nbsp;sum(x,&nbsp;[]):...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;el...a b c从这些链接,显然最完整,快速优雅等实现如下:def&nbsp;flatten(l,&nbsp;ltypes=(list,&nbsp;tuple)): &nbsp;&nbsp;&nbsp;&nbsp;ltype&nbsp;=&nbsp;type(l) &nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;=&nbsp;list(l) &nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;i&nbsp;<&nbsp;len(l): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;isinstance(l[i],&nbsp;ltypes): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;not&nbsp;l[i]: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l.pop(i) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;-=&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l[i:i&nbsp;+&nbsp;1]&nbsp;=&nbsp;l[i] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;+=&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ltype(l)
随时随地看视频慕课网APP

相关分类

Python
我要回答