扁平化嵌套lis

2024-09-24 06:23:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数百行数据,它们看起来如下:

[[u' 16 '], [u'1x23'], [u'Mr Test', u' (5)'], [u'John Smith'], [u'54.5'], [], [u'10%'], [u'40%'], [u'$26,503']]

其中一些值是嵌套的,有些值也为空。

我想按摩一下:

^{pr2}$

我尝试了一些在这里发现的一些想法,比如扁平化,包括以下常规:

^{pr3}$

这对一些我已经解析过的表有效,但只有在没有空值时才有效。


Tags: 数据testjohn常规smith空值mrpr2
3条回答

如果您唯一的问题是空值,您可以先在if中检查它:

def traverse(o, tree_types=(list, tuple)):
    if isinstance(o, tree_types):
        if len(o) == 0:
            yield ''
        for value in o:
            for subvalue in traverse(value):
                yield subvalue
    else:
        yield o

这将实现以下目的(即使值为空):

import operator
def flatten(a):
    return reduce(operator.add, a)

试试这个

sum((item or [""] for item in a), [])

奇怪啊?在

相关问题 更多 >