Flattening mixed lists in Python (containing iterables and noniterables)
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Flatten (an irregular) list of lists in Python
我该如何在python中展开包含iterables和noniterables的列表,如[1,[2,3,4],5,[6]?结果应该是[1,2,3,4,5,6],并且列表列表列表(等)肯定永远不会出现。
我试过使用itertools.chain等,但它们似乎只在列表上工作。救命!
因此,您只希望将1或2个级别展平,而不是递归地展平到进一步的深度;并且只希望在列表中,而不希望在字符串、元组、数组等其他iterable中…我把你的规格弄对了吗?好的,如果是这样,那么……:
1 2 3 4 5 6 | def flat2gen(alist): for item in alist: if isinstance(item, list): for subitem in item: yield subitem else: yield item |
如果您想要一个列表结果,
如果你的实际规格有微小的不同,希望这对你来说是非常容易适应的!