m0_58315072 2021-05-16 21:17 采纳率: 33.3%
浏览 133
已采纳

python嵌套列表

自定义一个递归函数 unpack(lst) ,参数为一个列表,其中列表可能包含嵌套列表。该函数的作用就是将嵌套列表中的元素解放出来,最后生成一个无嵌套结构的简单列表。例如: lst=[[1,7,4,6],[5,9,4,2],[88,3,3,1],[88,[31,45,[43,17],19,17],12,1]] 最后解包后的列表为 [1, 7, 4, 6, 5, 9, 4, 2, 88, 3, 3, 1, 88, 31, 45, 43, 17, 19, 17, 12, 1] 由于嵌套列表的嵌套层数不限,最好的解决方法就是 使用 递归函数解决问题。 主程序首先使用 lst=eval(input()) 让用户输入一个嵌套列表,然后定义一个全局变量如 datalist赋值为空列表。为安全期间,在转换之前先判断输入的数据是否为列表,若是列表,则调用自定义函数 unpack(lst) 进行解包数据,不是列表则提示:I need a list of lists ! Please check your input ! 关于递归函数的处理流程: 循环访问lst中的元素,若不是列表,则直接将该元素添加到datalist列表中;若是列表则递归调用unpack函数解包当前元素。 输入描述 [[1,7,4,6],[5,9,4,2],[88,3,3,1],[88,[31,45,[43,17],19,17],12,1]] 输出描述 [1, 7, 4, 6, 5, 9, 4, 2, 88, 3, 3, 1, 88, 31, 45, 43, 17, 19, 17, 12, 1] 样例输入1: [[1,7,4,6],[5,9,4,2],[88,3,3,1],[88,[31,45,[43,17],19,17],12,1]] 样例输出1: [1, 7, 4, 6, 5, 9, 4, 2, 88, 3, 3, 1, 88, 31, 45, 43, 17, 19, 17, 12, 1] 样例输入2: 7 样例输出2: I need a list of lists ! Please check your input ! 语言 Python 代码(请注意:不要出现中文)

  • 写回答

2条回答 默认 最新

  • 关注
    datalist = []
    def unpack(ls):
        for v in ls:
            if type(v) is list:
                unpack(v)
            else:
                datalist.append(v)
    
    lst=eval(input())
    if type(lst) is list:
        unpack(lst)
        print(datalist)
    else:
        print('I need a list of lists ! Please check your input !')
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度