慕用2447696

此函数应该能够快速平整嵌套的可迭代容器,而无需使用任何递归:import collectionsdef flatten(iterable):    iterator = iter(iterable)    array, stack = collections.deque(), collections.deque()    while True:        try:            value = next(iterator)        except StopIteration:            if not stack:                return tuple(array)            iterator = stack.pop()        else:            if not isinstance(value, str) \               and isinstance(value, collections.Iterable):                stack.append(iterator)                iterator = iter(value)            else:                array.append(value)大约五年后,我对此事的看法发生了变化,使用它可能会更好:def main():    data = [1, 2, [3, 4, [5], []], [6]]    print(list(flatten(data)))def flatten(iterable):    iterator, sentinel, stack = iter(iterable), object(), []    while True:        value = next(iterator, sentinel)        if value is sentinel:            if not stack:                break            iterator = stack.pop()        elif isinstance(value, str):            yield value        else:            try:                new_iterator = iter(value)            except TypeError:                yield value            else:                stack.append(iterator)                iterator = new_iteratorif __name__ == '__main__':    main()

python如何制作一个任意列表_在Python中扁平化任意嵌套列表的最快方法是什么?...相关推荐

  1. python如何制作一个工程软件_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  2. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

  3. python可以制作游戏脚本吗_用Python写一个游戏脚本,你会吗?

    学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手.如果你也想多练项目实战.可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐 ...

  4. python如何创建一个文件夹_利用Python怎么创建一个文件夹

    利用Python怎么创建一个文件夹 发布时间:2020-12-08 14:48:04 来源:亿速云 阅读:91 作者:Leah 这期内容当中小编将会给大家带来有关利用Python怎么创建一个文件夹,文 ...

  5. 用python画卡通人物的画法_教你绘制扁平化风格的卡通人物肖像

    今天的教程,一起来学人物肖像的绘制方法,学会了可以用作头像或者设计素材(描绘不同的职业类型),也可以直接给自己画一个,实用不难,走起练一发! 现在开始我们的教程吧. 第一步: 我们将开始我们第一个任务 ...

  6. python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  7. python myqr制作二维码生成器_用Python生成动态二维码,只要5行代码,拥有你的个性二维码!...

    原标题:用Python生成动态二维码,只要5行代码,拥有你的个性二维码! 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. P ...

  8. python怎么制作游戏修改器_使用python编写游戏修改器

    最近比较怀旧,在玩一个比较老的PC游戏.由于游戏难度太高了,于是就打算自己写一个修改器. 通过查阅资料,在 Windows 下的修改器主要需要用到四个函数:OpenProcess, CloseHand ...

  9. python随机生成一个地区地址_利用Python生成随机的IP地址

    需求 在某应用中,需要根据一定的规则生成随机的IP地址,规则类似于192.168.11.0/24这样的CIDR形式给出. 实现 经过艰苦卓绝的调试,下面的代码是可以用的: RANDOM_IP_POOL ...

最新文章

  1. Educational Codeforces Round 80 (Rated for Div. 2)SZU cf集训round2 C~E(dp,状压+二分,树状数组+逆向思维)
  2. Clusterware 和 RAC 中的域名解析的配置校验和检查 (文档 ID 1945838.1)
  3. 一次 JVM 调优的笔记
  4. 笔记-软考高项-错题笔记汇总1
  5. 前端学习(64):css继承属性小结
  6. Android实时打印kernel和App log(两种方法)
  7. 从源码解析kube-scheduler默认的配置
  8. 医学方面的创业计划书_医学生创业计划书
  9. 达芬奇影视后期处理4K/8K图形工作站、存储完美2021配置推荐
  10. 如何写简历才能够突显自己的厉害之处?
  11. 《日内交易策略-谷物期货交易实战指南》笔记
  12. “鲁班”画海报、“小蜜”当客服,“菜鸟”管物流……,双十一阿里黑科技知多少...
  13. jsp学习—虚拟主机
  14. Ubuntu Linux红色警戒Read Alert官方开源版OpenRA安装笔记
  15. 华为应用市场2021年度安全隐私报告发布:护航应用安全是场“持久战”
  16. Python爬虫-抓取PC端网易云音乐评论(GUI界面)
  17. 微信小程序emoji表情输入框制作
  18. python改变列的数据类型_更改Pandas中列的数据类型
  19. matlab之绘制表达式或函数fplot
  20. 智能家居大规模落地的关键,在于能否迈过“老人”这道坎

热门文章

  1. 新春牛年迎春PSD分层模板!最全设计素材都在这了
  2. UI实用素材|扁平化UI设计模板,UI设计师都要会!
  3. 新手做UI?手里有几种常见的界面套路模板素材,你就成功一大半了!
  4. 实现后台高级查询(基础版)
  5. Intel初始化和模式切换示例
  6. Linux内核深入理解定时器和时间管理(3):tick 广播 框架 和 dyntick
  7. Linux内存管理:分页机制
  8. __attribute__((weak)):弱引用,可以不实现
  9. 一个简单的Python爬虫
  10. java i= i_java中 i!=i+1?你错了。 | 学步园