本文实例讲述了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