Python实现嵌套列表及字典并按某一元素去重复功能示例

本文实例讲述了Python实现嵌套列表及字典并按某一元素去重复功能。分享给大家供大家参考,具体如下:

#! /usr/bin/env python
#coding=utf-8
class HostScheduler(object):
  def __init__(self, resource_list):
    self.resource_list = resource_list
  def MergeHost(self):
    allResource=[]
    allResource.append(self.resource_list[0])
    for dict in self.resource_list:
      #print len(l4)
      k=0
      for item in allResource:
        #print 'item'
        if dict['host'] != item['host']:
          k=k+1
          #continue
        else:
          break
        if k == len(allResource):
          allResource.append(dict)
    taskhost=[]
    for item in allResource:
      taskhost.append(item['host'])
    return taskhost
#该函数实现嵌套列表中,按某一元素去重复
def deleteRepeat():
  #1、列表中嵌套列表。按元素‘b'实现去重复
  l1=[['b',1],['b',2],['c',3],['a',1],['b',1],['b',1],]
  l2=[]
  l2.append(l1[0])
  for data in l1:
    #print len(l2)
    k=0
    for item in l2:
      #print 'item'
      if data[0] != item[0]:
        k=k+1
      else:
        break
      if k == len(l2):
        l2.append(data)
  print "l2: ",l2
  #2、列表中嵌套字典。按键值host实现去重复
  l3=[{'host':'compute21', 'cpu':2},{'host':'compute21', 'cpu':2},{'host':'compute22', 'cpu':2},
    {'host':'compute23', 'cpu':2},{'host':'compute22', 'cpu':2},{'host':'compute23', 'cpu':2},
    {'host':'compute24', 'cpu':2}]
  l4=[]
  l4.append(l3[0])
  for dict in l3:
    #print len(l4)
    k=0
    for item in l4:
      #print 'item'
      if dict['host'] != item['host']:
        k=k+1
        #continue
      else:
        break
      if k == len(l4):
        l4.append(dict)
  print "l4: ",l4
if __name__ == '__main__':
  #deleteRepeat()
  resource_list=[{'host':'compute21', 'cpu':2},{'host':'compute21', 'cpu':2},{'host':'compute22', 'cpu':2},
          {'host':'compute23', 'cpu':2},{'host':'compute22', 'cpu':2},{'host':'compute23', 'cpu':2},
          {'host':'compute24', 'cpu':2}]
  hostSchedule=HostScheduler(resource_list)
  taskhost=hostSchedule.MergeHost()
  print '我们测试结果: '
  print 'taskhost: '
  print taskhost

运行结果:

PS:本站还有两款比较简单实用的在线文本去重复工具,推荐给大家使用:

在线去除重复项工具:
http://tools.jb51.net/code/quchong

在线文本去重复工具:
http://tools.jb51.net/aideddesign/txt_quchong

更多关于Python相关内容可查看本站专题:《Python字典操作技巧汇总》、《Python字符串操作技巧汇总》、《Python常用遍历技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • python读取TXT到数组及列表去重后按原来顺序排序的方法

    本文实例讲述了python读取TXT到数组及列表去重后按原来顺序排序的方法.分享给大家供大家参考.具体如下: #################################################################### # python 读取TXT到数组 列表去重,不打乱原来的顺序 # 刚学写的不好请大家见谅 #################################################################### def open_tx

  • Python中字典(dict)和列表(list)的排序方法实例

    一.对列表(list)进行排序 推荐的排序方式是使用内建的sort()方法,速度最快而且属于稳定排序 复制代码 代码如下: >>> a = [1,9,3,7,2,0,5]>>> a.sort()>>> print a[0, 1, 2, 3, 5, 7, 9]>>> a.sort(reverse=True)>>> print a[9, 7, 5, 3, 2, 1, 0]>>> b = ['e','a'

  • Python-嵌套列表list的全面解析

    一个3层嵌套列表m m=["a",["b","c",["inner"]]] 需要解析为基本的数据项a,b,c,inner 基本的取数据项方法: for i in m: print i这个只能取出第一层的a,和一个2层的嵌套列表["b","c",["inner"]] 结合内置函数和判断可以继续解析这个2层列表 for i in m: if isinstance(i,li

  • 你应该知道的python列表去重方法

    前言 列表去重是写Python脚本时常遇问题,因为不管源数据来自哪里,当我们转换成列表的方式时,有可能预期的结果不是我们最终的结果,最常见的就是列表中元素有重复,这时候第一件事我们就要做去重处理. 我们先来个最简单的方式,用python内置的数据类型set来实现. 假设我们的列表数据是这样的: level_names = [ u'Second Level', u'Second Level', u'Second Level', u'First Level', u'First Level' ] 因为

  • Python中将字典转换为列表的方法

    说明:列表不可以转换为字典 ①转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3} #字典中的key转换为列表 key_value = list(a.keys()) print('字典中的key转换为列表:', key_value) #字典中的value转换为列表 value_list = list(a.values()) print('字典中的value转换为列表:', value_list) 运行结果: ②转换后的列表为有序列表 import collecti

  • PYTHON压平嵌套列表的简单实现

    list 是 Python 中使用最频繁的数据类型, 标准库里面有丰富的函数可以使用. 不过,如果把多维列表转换成一维列表(不知道这种需求多不多),还真不容易找到好用的函数, 要知道Ruby.Mathematica.Groovy中可是有flatten的啊. 如果列表是维度少的.规则的,还算好办 例如: li=[[1,2],[3,4],[5,6]] print [j for i in li for j in i] #or from itertools import chain print list

  • python列表去重的二种方法

    复制代码 代码如下: #第一种def delRepeat(liebiao): for x in liebiao:  while liebiao.count(x)>1:   del liebiao[liebiao.index(x)] return liebiao #第二种 无法保持原有顺序liebiao=set(liebiao)

  • Python字符串、元组、列表、字典互相转换的方法

    废话不多说了,直接给大家贴代码了,代码写的不好还去各位大侠见谅. #-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'} print type(str(dict)), str(dict) #字典可以转为元组,返回:('age', 'name', 'class

  • Python对list列表结构中的值进行去重的方法总结

    今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数.不过这个东西最终还是没用上. 问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids: if id not in news_ids: news_ids.append(id) print news_ids 这样也可行,但是看起来不够爽. 用set 另外

  • Python实现嵌套列表及字典并按某一元素去重复功能示例

    本文实例讲述了Python实现嵌套列表及字典并按某一元素去重复功能.分享给大家供大家参考,具体如下: #! /usr/bin/env python #coding=utf-8 class HostScheduler(object): def __init__(self, resource_list): self.resource_list = resource_list def MergeHost(self): allResource=[] allResource.append(self.res

  • Python编程对列表中字典元素进行排序的方法详解

    本文实例讲述了Python编程对列表中字典元素进行排序的方法.分享给大家供大家参考,具体如下: 内容目录: 1. 问题起源 2. 对列表中的字典元素排序 3. 对json进行比较(忽略列表中字典的顺序) 一.问题起源 json对象a,b a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}' b = '{"ROAD": [{"name": "

  • python如何在列表、字典中筛选数据

    python如何在列表.字典中筛选数据? 实际问题有哪些? 1.过滤掉列表[3,9,-1,10.-2......] 中负数 2.筛选出字典 {'li_ming':90,'xiao_hong':60,'li_kang':95,'bei_men':98} 中值高于90的项 3.筛选出集合{3,9,-1,10.-2......]中能被3整除的数 问题1如何解决? 最普通方法: #!/usr/bin/python3 def filter_l(data): res = [] for i in data:

  • python实现嵌套列表平铺的两种方法

    方法一:使用列表推导式 >>> vec = [[1,2,3],[4,5,6],[7,8,9]] >>> get = [num for elem in vec for num in elem] >>> get [1, 2, 3, 4, 5, 6, 7, 8, 9] 方法相当于 >>> vec = [[1,2,3],[4,5,6],[7,8,9]] >>> result = [] >>> for ele

  • Python创建空列表的字典2种方法详解

    如果要在 Python 中创建键值是空列表的字典,有多种方法,但是各种方法之间是否由区别?需要作实验验证,并且分析产生的原因.本文针对两种方法做了实验和分析. 如果要在 Python 中创建一个键值都是列表的字典,类似下面这样,该怎么做? {1:[], 2:[], 3:[], 4:[]} 方法1,字典构造器 用 dict 构造器生成,构造(key,value)对 > key = [1, 2, 3, 4] > a = dict([(k,[]) for k in key]) > a {1:

  • Python基础学习列表+元组+字典+集合

    目录 一.列表 二.元组 三.字典 四.集合 五.总节 前言: 这一章的知识紧接上一章,零基础的小伙伴可以从上一章学起来.当然,你也可以收藏起来慢慢学习,学习是不可操之过急的啦… 一.列表 print("-------------创建列表-------------"); list1 = ['JAVA', 'Hello', 'Python', 'VS', 1, 2, 3] print(list1) list2 = list('Python') print(list2) list3 = [

  • Python找出列表中出现次数最多的元素三种方式

    通过三种方式给大家介绍,具体详情如下所示: 方式一: 原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的key,如果不存在的话,将元素作为key,值为列表中元素的count # 字典方法 words = [ 'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I', 'need', 'skills', 'more', 'my', 'ability', 'are', 'so', 'poor' ] dict

  • Python实现删除列表中满足一定条件的元素示例

    本文实例讲述了Python实现删除列表中满足一定条件的元素.分享给大家供大家参考,具体如下: 从列表中删除满足一定条件的元素. 如:删除一个列表中长度为0的元素,或者删除列表中同时是2和3的倍数的元素. 做过高级语言编程的人想当然的会认为"这很简单",可以如下面的方式来实现: for i in listObj: if(...): listObj.remove(i) 看下一个小例子和结果: a = [1, 2, 3, 12, 12, 5, 6, 8, 9] for i in a: if

  • Python实现嵌套列表去重方法示例

    发现问题 python嵌套列表大家应该都不陌生,但最近遇到了一个问题,这是工作中遇到的一个坑,首先看一下问题 raw_list = [["百度", "CPY"], ["京东", "CPY"], ["黄轩", "PN"], ["百度", "CPY"]] 列表嵌套了列表,并且有一个重复列表["百度", "CPY"

随机推荐