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脚本生成随机IP的简单方法
Jul 30 Python
对python中使用requests模块参数编码的不同处理方法
May 18 Python
pip指定python位置安装软件包的方法
Jul 12 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
Python爬虫设置ip代理过程解析
Jul 20 Python
Python常用数字处理基本操作汇总
Sep 10 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
Python虚拟环境virtualenv创建及使用过程图解
Dec 08 Python
python 基于opencv操作摄像头
Dec 24 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
php强制下载类型的实现代码
2011/04/21 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php简单实现MVC
2015/02/05 PHP
PHP发送短信代码分享
2015/08/11 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
Extjs学习笔记之七 布局
2010/01/08 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
简单实现JS倒计时效果
2016/12/23 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
Python正则表达式常用函数总结
2017/06/24 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
小学教师寄语大全
2014/04/03 职场文书
2015年党员自评材料
2014/12/17 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
工作态度不好检讨书
2015/05/06 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
java解析XML详解
2021/07/09 Java/Android