美文网首页
嵌套数组的展开姿势最佳

嵌套数组的展开姿势最佳

作者: Python_Camp | 来源:发表于2020-11-14 15:36 被阅读0次
def flatarrs(arrs):
    ans = []
    for arr in arrs:
        if type(arr) == str:
            ans.append(arr)
            yield arr
        else:
            yield from flatarrs(arr)
            
def locate(seq, value):
    return value in list(flatarrs(seq))

​- 课程大类AGENDA -01 Scratch 初中高01 女性编程日周二02 Python 编程思维02 数字设计3D实践03 VEX IQ 理论和实战03 创客体验 免费预约04 ACM/NOI 算法04 物联网基础实践**▽ ****课程体系和进度****▽ **

丁丁猫python起跑班课程内容覆盖7个大模块,每个模块文末详细技能知识点。3个班的进度相同但讲的深度不同。课程设计中将感受到对逻辑课的高度重视,弥补国内K12编程和数学课程缺少的重要一环。

本文是课程内容的深入补充同时为了便于查看历史文章,单独汇总字典部分的用法。有部分同学进度赶不上,可以考虑跟下一轮基础班重修。

**- **编程实践和机器人课程中穿插必备的数学和物理
**- **全球顶级的STEM在线课程提供线下辅导
- 既能视频一对一学习,也有线下授课

▽ 关键技能点▽

  • 多层嵌套数组如何展开

  • 递归写法的优点

  • 生成器
    template 递归 format学编程和学吃牛排
    “老师教我刀叉怎么切牛肉,你以为好玩又好吃?”
    “当然这么认为,不然我替你去学!”
    “一上午对着一盘子,切了半天的空气”
    “脑补了你对着空盘子认真到无聊的样子”

Python练习题:多层嵌套的数组

输入:['a','b',['c','d',['e',['a','b',['c','d',['e']]]]]]
输出:['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e']

三种写法

第一种递归:简洁易懂

arrs = ['a','b',['c','d',['e',['a','b',['c','d',['e']]]]]]

def flatarrs(arrs):
    ans = []
    for arr in arrs:
        if type(arr) == str:
            ans.append(arr)
            yield arr
        else:
            yield from flatarrs(arr)
print(list(fattarrs(arr)) 

# 第二种生成器:生成器

def flat(seq):
    iterator, sentinel, stack = iter(seq), 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_iterator
print(list(fattarrs(arr))

1. Collections: List, Dictionary, Set, Tuple, Range, Enumerate, Iterator, Generator.
2. Types: Type, String, Regular_Exp, Format, Numbers, Combinatorics, Datetime
3. Syntax: Args, Inline, Closure, Decorator, Class, Duck_Types, Enum, Exceptions
4. System: Print, Input, Command_Line_Arguments, Open, Path, Command_Execution.
5. Data: CSV, JSON, Pickle, SQLite, Bytes, Struct, Array, MemoryView, D

相关文章

  • 嵌套数组的展开姿势最佳

    ​- 课程大类AGENDA -01 Scratch 初中高01 女性编程日周二02 Python 编程思维02 数...

  • Js递归数组展平

    遇到多个嵌套的数组,将嵌套的数组中的元素全部展开到最外层的数组中,可以使用递归来解决这个问题。 什么是递归? 递归...

  • Mongodb高级查询

    1. 判断是否是空的数组 2. 查询时array只返回满足条件的元素 unwind把嵌套的数组展开

  • 01-JS-04

    数组 字面量 var arr=[ ];[ 二维数组 ]数组里面再嵌套一个数组 [ 多维数组 ]数组里面嵌套多个数组...

  • 每日一题

    20170830 数组扁平化: 实现一个flatten函数,将一个嵌套多层的数组 array(数组) (嵌套可以是...

  • js 数组扁平化实现的多种方法

    方法① 效果:不管数组嵌套多少层,都转化为一维数组。 方法② 效果:不管数组嵌套多少层,都转化为一维数组。 方法③...

  • angular2foreach遍历的几种用法

    遍历简单的数组 遍历数组对象 遍历嵌套数组

  • flatten,map,reduce方法总结

    (1)flatten的用法 将一个嵌套多层的数组 array(数组) (嵌套可以是任何层数)转换为只有一层的数组,...

  • 解构赋值

    解构赋值 数组的解构赋值 嵌套,默认值,展开符 对象的解构赋值 对象解构赋值的本质与简写 对象解构的模式与变量 对...

  • mongo 数据库操作

    嵌套数组里的成员操作 删除嵌套数组里的成员数据 数据源: {"_id" : "777","someKey" : "...

网友评论

      本文标题:嵌套数组的展开姿势最佳

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