• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python多层嵌套list的递归处理方法(推荐)

Python多层嵌套list的递归处理方法(推荐)

作者:jingxian 字体:[增加 减小] 来源:互联网

jingxian 通过本文主要向大家介绍了python list多层解析,python跳出多层循环,python创建多层目录,python list嵌套,多层list嵌套json等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

问题:用Python处理一个多层嵌套list

['and', 'B', ['not', 'A'],[1,2,1,[2,1],[1,1,[2,2,1]]], ['not', 'A', 'A'],['or', 'A', 'B' ,'A'] , 'B']
</div>

需求1)如何展开成一层?

需求2)如何删除重复的元素? 包括重复的list, 要考虑子list的重复元素删除后造成的子list重复

#!/usr/bin/env python
# -*- coding: utf-8 -*-


def unilist(ll):
  
  """
  功能:用递归方法删除多层列表中重复元素
  """
  
  result = []
  for i in ll:
    if isinstance(i, list):
      if unilist(i) not in result:
        result.append(unilist(i))
    else:
      if i not in result:
        result.append(i)
  return result


def flatten(ll):
  """
  功能:用递归方法展开多层列表,以生成器方式输出
  """
  if isinstance(ll, list):
    for i in ll:
      for element in flatten(i):
        yield element
  else:
    yield ll


testcase= ['and', 'B', ['not', 'A'],[1,2,1,[2,1],[1,1,[2,2,1]]], ['not', 'A', 'A'],['or', 'A', 'B' ,'A'] , 'B']

print unilist(testcase)

print list(flatten(testcase))
</div>

运行结果

['and', 'B', ['not', 'A'], [1, 2, [2, 1], [1, [2, 1]]], ['or', 'A', 'B']]

['and', 'B', 'not', 'A', 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 'not', 'A', 'A', 'or', 'A', 'B', 'A', 'B']
</div>

以上这篇Python多层嵌套list的递归处理方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

</div>

您可能想查找下面的文章:

  • Python多层嵌套list的递归处理方法(推荐)
  • 深入解析Python中的list列表及其切片和迭代操作
  • 深入解析Python中的list列表及其切片和迭代操作

相关文章

  • Python 爬虫的工具列表大全
  • Python批量按比例缩小图片脚本分享
  • 使用Python获取Linux系统的各种信息
  • python如何查看系统网络流量的信息
  • python 实现归并排序算法
  • 在win和Linux系统中python命令行运行的不同
  • Python使用poplib模块和smtplib模块收发电子邮件的教程
  • Python中使用不同编码读写txt文件详解
  • python中解析json格式文件的方法示例
  • Python学习笔记之常用函数及说明

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python判断字符串是否纯数字的方法
    • Python中的__new__与__init__魔术方法理解笔记
    • 下载给定网页上图片的方法
    • Pycharm学习教程(2) 代码风格
    • python里大整数相乘相关技巧指南
    • python处理中文编码和判断编码示例
    • Python实现获取操作系统版本信息方法
    • Python操作Excel之xlsx文件
    • 用Python代码来解图片迷宫的方法整理
    • python多线程编程中的join函数使用心得

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有