Making a flat list out of a multi-type nested list
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Flatten (an irregular) list of lists in Python
号
我有以下清单--
1 | [1,[2,3],4,[5,[6,7]]] |
我要把它弄平--
1 | [1,2,3,4,5,6,7] |
号
为了做到这一点,我目前正在使用一个
使嵌套列表扁平化的最简单方法是什么?谢谢您。
在这里可以找到一个类似的问题,它涉及到从嵌套列表中创建一个简单列表(仅限此):在Python中从列表列表中创建一个简单列表。
从webhelpers.misc.flatten拖运
1 2 3 4 5 6 7 8 9 | def flatten(iterable): """Recursively iterate lists and tuples. """ for elm in iterable: if isinstance(elm, (list, tuple)): for relm in flatten(elm): yield relm else: yield elm |
编辑:这里的iterable测试非常简单,可以通过检查
编辑2:@christophed是绝对正确的,这是一个dupe-so头到链接的问题。
试试这个:
1 2 3 4 5 6 7 8 | def flat(mlist): result = [] for i in mlist: if type(i) is list: result.extend(flat(i)) else: result.append(i) return result |
号