【问题标题】:Python: Filter list full of unicode and lists to just stringsPython:过滤列表,其中包含 unicode 和列表,仅包含字符串
【发布时间】:2017-04-18 19:47:09
【问题描述】:

假设我有一个如下列表。

lst = [[u'1'], [[], [u'Qjfe dw Dvrferk (bfw)'], []], [u'86,865,281'], [u'$22.34'], [u'-0.31'], [u'-1.37']]

将其转换为这样的字符串列表的最佳方法是什么(最好使用 lambda)。

lst = ['1', 'Qjfe dw Dvrferk (bfw)', '86,865,281', '$22.34', '-0.31', '-1.37'] 

【问题讨论】:

  • 再想一想,如果更简单的话,我可以使用 unicode 列表而不是字符串。
  • 每个子列表可以有超过 1 个项目吗?

标签: python string python-2.7 list lambda


【解决方案1】:

对我来说看起来像是一个很深的扁平化。

def deep_flatten(L):
    for e in L:
        if isinstance(e, list):
           for e in deep_flatten(e):
               yield e
        else:
            yield e

lst = [[u'1'], [[], [u'Qjfe dw Dvrferk (bfw)'], []], [u'86,865,281'], [u'$22.34'], [u'-0.31'], [u'-1.37']]

list(deep_flatten(lst))

结果:

[u'1', u'Qjfe dw Dvrferk (bfw)', u'86,865,281', u'$22.34', u'-0.31', u'-1.37']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多