python实现嵌套列表、字典按某一元素去重复

来源:互联网 发布:放置江湖修改数据 编辑:程序博客网 时间:2024/05/29 16:06
#! /usr/bin/env python#coding=utf-8class 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: ",l4if __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 'taskhost: '    print taskhost

结果:

l2:  [['b', 1], ['c', 3], ['a', 1]]l4:  [{'host': 'compute21', 'cpu': 2}, {'host': 'compute22', 'cpu': 2}, {'host': 'compute23', 'cpu': 2}, {'host': 'compute24', 'cpu': 2}]taskhost: ['compute21', 'compute22', 'compute23', 'compute24']
0 0
原创粉丝点击