我有一个嵌套在多个列表层中的列表列表.

可能的输入:

[[[[1,2,3],[a,b,c]]]]或[[[1,c]]]或[[[1,3] ]],[[a,c]]]

当我使用flat()时,它会压扁所有不是我想要的东西.

[1,3,A,B,C]

我需要的是

[[1,c]]

作为最终输出.

我的平面定义如下

def flat(S):
    if S == []:
        return S
    if isinstance(S[0],list):
        return flat(S[0]) + flat(S[1:])
    return S[:1] + flat(S[1:])

解决方法

import collections
def is_listlike(x):
    return isinstance(x,collections.Iterable) and not isinstance(x,basestring)

def flat(S):
    result = []
    for item in S:
        if is_listlike(item) and len(item) > 0 and not is_listlike(item[0]):
            result.append(item)
        else:
            result.extend(flat(item))
    return result

tests = [ [[[[1,['a','b','c']]]],[[[1,'c']]],3]],[['a','c']]] ]

for S in tests:
    print(flat(S))

产量

[[1,'c']]
[[1,'c']]

python:展平到列表列表但不多了的更多相关文章

  1. Swift中的列表解析

    在Swift中完成这个的最简单的方法是什么?我在寻找类似的东西:从Swift2.x开始,有一些与你的Python样式列表解析相当的东西。(在这个意义上,它更像是Python的xrange。如果你想保持集合懒惰一路通过,只是这样说:与Python中的列表解析语法不同,Swift中的这些操作遵循与其他操作相同的语法。

  2. 如何在Ubuntu中的PyGTK或GTK中打开列表?

    如何在PyGTK或GTK或其他编程语言中打开列表?您可能想要使用libwnck:http://library.gnome.org/devel/libwnck/stable/我相信在python-gnome或类似的包中有python绑定.运行GTK主循环后,您可以执行以下操作:该列表中窗口上的一些有趣方法是get_name()和activate().当您单击按钮时,这将打印到控制台的窗口名称.但由于某种原因,我不得不点击按钮两次.这是我第一次使用libwnck所以我可能会遗漏一些东西.版权声明:本文内容由互

  3. ubuntu14.04 lts rabbitVcs安装记录

    安装时报错:Depends:thunarx-python(>=0.3.0)but0.2.0-1~preciseistobeinstalled网上找不到解决办法,故记录分享,出现该问题是使用了precise的源,替换为trusty,详见附上的源列表软件安装包链接:http://ppa.launchpad.net/rabbitvcs/ppa/ubuntu/pool/main/r/rabbitvcs/W

  4. 正则表达式Python匹配大型字符串列表

    编辑:在与VoronoiPotato进行了有趣的讨论之后,我开始认为更好地为大型字符串列表的所有项的索引进行索引,并且我用这个功能来完成这个操作:并尝试使用此列表:然后我开始分析我的文字:并试图单独调查每个字:方法似乎很快,但我不知道如何进一步你在找这样的东西吗?

  5. jquery – python列表到换行符分隔值

    我试图在pylon中获取数据以用于jquery自动完成,我用于自动填充的图书馆需要这种格式在python中我有这种格式的数据如何将此列表转换为上面的列表.编辑:我试图使用这些来进行自动比赛,我正在使用pylons,其中查询服务器返回此格式的列表http://jquery.bassistance.de/autocomplete/demo/这个库除了远程调用我试着用但它会像这样在firebug中返回数

  6. 如何在Java中使用Google App Engine数据存储区中的列表属性?

    放置在数据存储区中的对象将具有一组标记.在Python中,GoogleAppEngine具有列表属性的概念.Java中的等效概念以及如何在Java,JPA和/或JDO中使用列表属性?

  7. 有没有更优雅的方式来处理Java中的列表? (Python VS Java)

    JavaAPI中是否有任何内置运算符或辅助函数可以使这个解决方案更“Pythonic”?

  8. c – 使用gnu 11和没有stdlib(Arduino环境)在编译时过滤值列表

    我正在研究一个Arduino项目,这意味着C方言目前是C11的gnu11超集,并且stdlib不可用(没有元组,没有数组,没有任何东西;命名空间std只是空的!

  9. 在C中工作后如何用Python思考?

    我是Python的新手,并试图通过将以下C函数复制到python中来学习它在我的python代码中(下面),而不是第二个向量,我有一个字符串列表的列表,前一个字符串中的字符的排序列表,以及一个bool.但是,我无法弄清楚如何在遍历列表时更改值.任何有关这样做或更多思考“pythony”的帮助表示赞赏.解决方法保持简单,这是O的复杂性,如果你没有GB的数据,那就足够了.请注意,set()和dict()基本上是一个散列索引(free和builtin!

  10. 如何彻底平整Perl 6列表(列表(列表)…)

    我想知道我如何能够完全压扁包含它们的列表和内容.除此之外,我想出了这样一个解决方案,它将有不止一个元素的东西放回去,或者在滑倒之后用一个元素来处理东西.这与HowdoI“flatten”alistoflistsinperl6?有点不同,因为任务是重组,这并不完全平坦.但是,也许有更好的方法.这给出:奇怪的是,我也读了一些python的答案:>Makingaflatlistoutoflistofli

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部