本文主要向大家介绍了Python语言多层嵌套list的递归处理方法,希望对大家学习Python语言有所帮助。

问题:用Python处理一个多层嵌套list['and', 'B', ['not', 'A'],[1,2,1,[2,1],[1,1,[2,2,1]]], ['not', 'A', 'A'],['or', 'A', 'B' ,'A'] , 'B']

需求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))

运行结果

['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']

以上这篇Python多层嵌套list的递归处理方法(推荐)就是小编分享给大家的全部内容了,本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言Python频道!

递归python首尾相同的子字符串_推荐Python语言多层嵌套list的递归处理方法相关推荐

  1. python找最长的字符串_为Python找到最长重复字符串的有效方法(从Pearls编程)

    我的解决方案是基于后缀数组.它是由最长公共前缀的两倍前缀构成的.最坏情况下的复杂度是O(n(logn)^2).任务"伊利亚特.mb.txt"在我的笔记本上花了4秒钟.代码在函数su ...

  2. python将txt文件转为字符串_使用Python将复数转换为文本文件中的单数

    我们可以更改它,以便我们将输入文件作为一个行列表读取 我们可以使用大字符串并将其分解为列表. 我们可以一次一个地检查一行中的每一行. 醇> 为了方便起见,让我们滚动#1.这将需要将openfil ...

  3. python代码大全心形盒子简单_一行Python代码画心型

    一行Python代码画心型 1.画I组成的心型代码: print('\n'.join([''.join([('I'[(x-y) % len('I')]if ((x*0.05)**2+(y*0.1)** ...

  4. python中复制n次字符串_在Python中查找字符串中多次出现的字符串

    精慕HU 使用正则表达式,您可以使用re.finditer查找所有(非重叠)出现的事件:>>> import re>>> text = 'Allowed Hello ...

  5. python中不可以用来表示字符串_在Python中,不可以用来表示字符串的符号是____________。...

    [单选题]患者女, 40 岁,开放性肺结核,咳嗽.咳痰 2 周入院.作为隔离病区的护士在护理该患者时,要掌握正确的隔离区域划分和方法是 [单选题]下列关于梦游症的叙述不正确的是() [单选题]下列哪种 ...

  6. python 求子字符串_(6)KMP算法(求子串的位置)______字符串的匹配

    问题: 已知字符串 B 是字符串 A 的一个子串,问字符串 B 在字符串 A 的第一次出现位置. 暴力方法:从 A 字符串 的每个位置开始对字符串 B 进行匹配. 这种方法根据数据的不同 复杂度不同最 ...

  7. python字符串_(Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  8. python希腊字母字符串_#10 Python字符串

    前言 通过上一节可知,Python6个序列的内置类型中,最常见的是列表和元组,但在Python中,最常用的数据类型却不是列表和元组,而是字符串.要想深入了解字符串,必须先掌握字符编码问题.因此本篇博文 ...

  9. 检查数组中的子字符串– Java,Python和Swift

    In this quick tutorial, we'll learn how to quickly search a part of a string in an Array. We'll be d ...

最新文章

  1. Apache与nginx的优缺点对比
  2. LINUX使用tcgetattr函数与tcsetattr函数控制终端二
  3. 关于idea右侧的maven project 如何调出来
  4. 为开源做贡献,我们要做一次最具挑战的尝试!
  5. Linux chapter 8
  6. Hadoop与Hbase 安装下载
  7. infer的用法_infer的用法总结大全
  8. 四川全国计算机一级考试查询系统,2013四川计算机一级成绩查询入口
  9. win7添加一个计算机图标,Win7系统任务栏添加计算机图标的步骤图解
  10. 鸡啄米VS2010/MFC教程
  11. 淘宝吱口令效果实现,获取系统剪贴板内容
  12. ac.find_template 踩坑,寻找相似图片,安卓自动化代码
  13. 【论文阅读笔记】Simple and Lightweight Human Pose Estimation
  14. 处理工具提示的TTN_NEEDTEXT通知
  15. 学习TypeScrip1(基础类型)
  16. 反射一、反射的基本概念
  17. 模块-E18-D80NK红外避障传感器
  18. 【WCN685X】WCN6856 5G吞吐量测试只有25Mbps问题原因分析及解决方案
  19. [BUUCTF-pwn] hackcon2018_elegent
  20. C++ 写的地图控件,支持google 百度 在线离线地图

热门文章

  1. 论文研读:Automatic Temporal Segment Detection and Affect Recognition From Face and Body Display
  2. 安装nvm-nvm: command not found
  3. 【Spark-core学习之九】 Spark案例
  4. copy elison RVO NRVO
  5. bootstrap栅格分5等分
  6. 2017-06-09 问题
  7. mysql select 1
  8. mysql 语法积累
  9. zebra打印机注意点
  10. MIT、哈佛合作,这个研究让神经网络认清自己“几斤几两”!