美文网首页
python 扁平化处理嵌套型的序列

python 扁平化处理嵌套型的序列

作者: 孙广宁 | 来源:发表于2022-05-17 23:49 被阅读0次
    4.14 如何处理有嵌套型的数据
    • 可以通过 yield from语句来扁平化处理
    >>> from collections import Iterable
    >>> def f(items,ignore_type=(str,bytes)):
    ...     for x in items:
    ...         if isinstance(x,Iterable) and not isinstance(x,ignore_type):
    ...             yield from f(x)
    ...         else:
    ...             yield x
    ...
    >>> items=[1,2,[3,4,[5,6],7],8]
    >>> for x in f(items):
    ...     print(x)
    ...
    1
    2
    3
    4
    5
    6
    7
    8
    >>>
    
    • 在上述代码中,isinstance(x,Iterable)简单地检查是否有某个元素可以迭代遍历

    • 如果有那么就用yield from将这个嵌套的对象进行递归。

    • 代码中的ignore_type和not isinstance的检查是为了避免将字符串和字节串解释为可遍历对象

    相关文章

      网友评论

          本文标题:python 扁平化处理嵌套型的序列

          本文链接:https://www.haomeiwen.com/subject/iofwyrtx.html