本文实例讲述了Python实现嵌套列表及字典并按某一元素去重复功能。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#! /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 |
运行结果:
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/will130/article/details/50441937