python代码实现将列表中重复元素之间的内容全部滤除


Posted in Python onMay 22, 2020

1. 引言

因为在学习遗传算法路径规划的内容,其中遗传算法中涉及到了种群的初始化,而在路径规划的种群初始化中,种群初始化就是先找到一条条从起点到终点的路径,也因此需要将路径中重复节点之间的路径删除掉(避免走回头路),这样子初始种群会比较优越,也能加快算法收敛速度。然后我在搜资料的时候发现,许多的代码都是滤除列表中相同元素的,并没有滤除相同元素中间段的代码,因此就自己写了。

2. 代码部分

我在python程序中把每一条路径用列表表示的,因此每一个列表就是一条路径比如
a = [0,1,3,4,5,6,3,4,7,3,5,8,9,8,10,13,11,12,10]
a就是一条路径起点为0,终点为10,但是可以看到,中间有许多回头路。因此设计算法将冗余部分滤除。代码如下,带有详细注释:

a = [0,1,3,4,5,6,3,4,7,3,5,8,9,8,10,13,11,12,10]#初始列表

def fiter(a):    #定义一个函数
  for i in a:   #遍历列表中的内容
    a = a[a.index(i)+1:]  #把当前内容索引的后面的内容剪切下来 因为前面的已经比对过了
    if i in a:   #如果当前内容与后面有重复
      return i,1  #返回当前重复的内容 以及标志位1
    else:      #没有重复就不用管 继续for循环
      pass 
  return 0,0 #全部遍历完 没有重复的就返回0 这里返回两个0 是因为返回的数量要保持一致
b = 1  #标志位 
while(b == 1): #标志位一直是 1 则说明有重复的内容
  (i,b) = fiter(a)    #此时接受函数接收 返回值 i是重复的内容 b是标志位
  c = [j for j,x in enumerate(a) if x==i] #将重复内容的索引全部添加进c列表中
  a = a[0:c[0]]+a[c[-1]:]   #a列表切片在重组
print(a)

3. 结果

python代码实现将列表中重复元素之间的内容全部滤除

这段代码还有改进的地方,可以把整体代码封装成函数,留着慢慢品吧

4. 续

算了,放在遗传算法总工程中,发现还是要封装起来,直接贴代码吧
代码如下:

a = [0,1,3,4,5,6,3,4,7,3,5,8,9,8,10,13,11,12,10]
class Fiter:
  def __init__(self):
    self.b = 1  #标志位
  def function(self,a):    #定义一个函数
    for i in a:   #遍历列表中的内容
      a = a[a.index(i)+1:]  #把当前内容索引的后面的内容剪切下来 因为前面的已经比对过了
      if i in a:   #如果当前内容与后面有重复
        return i,1  #返回当前重复的内容 以及标志位1
      else:      #没有重复就不用管 继续for循环
        pass 
    return 0,0 #全部遍历完 没有重复的就返回0 这里返回两个0 是因为返回的数量要保持一致
  
  def fiter(self,a):
    while(self.b == 1): #标志位一直是 1 则说明有重复的内容
      (i,self.b) = self.function(a)    #此时接受函数接收 返回值 i是重复的内容 b是标志位
      c = [j for j,x in enumerate(a) if x==i] #将重复内容的索引全部添加进c列表中
      a = a[0:c[0]]+a[c[-1]:]   #a列表切片在重组
    return (a)
fiter = Fiter() #实例化
a = fiter.fiter(a) #调用方法 返回已经滤除的列表
print(a)

这里直接封装成了类对象,使用得时候先实例化再调用方法就行了。结果和上面的结果是一样的。

总结

到此这篇关于python代码实现将列表中重复元素之间的内容全部滤除的文章就介绍到这了,更多相关python列表重复元素滤除内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python GAE、Django导出Excel的方法
Nov 24 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
Python之Web框架Django项目搭建全过程
May 02 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
django连接mysql配置方法总结(推荐)
Aug 18 Python
python reverse反转部分数组的实例
Dec 13 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
Django配置文件代码说明
Dec 04 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 Python
Python趣味挑战之实现简易版音乐播放器
May 28 Python
Tensorflow实现将标签变为one-hot形式
May 22 #Python
Python selenium爬取微博数据代码实例
May 22 #Python
python实现文法左递归的消除方法
May 22 #Python
使用Django搭建网站实现商品分页功能
May 22 #Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 #Python
Python实现发票自动校核微信机器人的方法
May 22 #Python
基于django micro搭建网站实现加水印功能
May 22 #Python
You might like
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
php中关于普通表单多文件上传的处理方法
2011/03/25 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
html超链接打开窗口大小的方法
2013/03/05 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
js实现全选和全不选
2020/07/28 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
python中round函数保留两位小数的方法
2020/12/04 Python
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
领导干部作风建设总结
2014/10/23 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
酒店财务经理岗位职责
2015/04/08 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
python元组打包和解包过程详解
2021/08/02 Python