【发布时间】:2017-03-24 18:12:22
【问题描述】:
编写了一个脚本来获取每个用户在 AWS 上运行的实例列表。我有一个字典列表。我想排序并列出每个用户运行的实例数(list_instances)。
list_instances=[{'type': u't2.small', 'user': u'user1'},
{'type': u'm4.large', 'user': u'user1'},
{'type': u't2.medium', 'user': u'user1'},
{'type': u't2.small', 'user': u'user1'},
{'type': u'm4.large', 'user': u'user1'},
{'type': u't2.small', 'user': u'user1'},
{'type': u'm4.large', 'user': u'user2'},
{'type': u'm4.large', 'user': u'user3'},
{'type': u't2.medium', 'user': u'user2'},
{'type': u't2.medium', 'user': u'user2'},
{'type': u't2.small', 'user': u'user3'}]
创建了两个包含用户名和实例类型的列表。
names_list=[u'user1', u'user2', u'ben', u'user3', u'user4']
type_list=[u't2.small', u'm4.large', u'm4.large', u't2.medium', u't2.small', u'm4.large', u'm4.large', u't2.small']
试试:
val = 0
final_instances=[]
for ii in names_list:
temp_dic = {}
for jj in type_list:
for kk in list_instances:
if (ii == kk['user']) and (jj in kk):
#print ii,kk['user'],jj,kk,kk[jj]
temp_dic['user']=kk['user']
temp_dic[jj]=val+kk[jj]
final_a.append(temp_dic)
print (final_instances)
我没有得到如下所示的预期输出。我的逻辑无法有效地获得预期的结果。有人可以帮我解决这个问题。提前致谢!
目标:
final_instances=
[{'user':u’user1’,’t2.small’:‘3’,’m4.large’:‘2’,’t2.medium’: ‘1’}
{'user': u’user2’,’m4.large’: ‘1’,’t2.medium’: ‘2’}
{'user': u’user3’,’t2.small’: ‘1’,’m4.large’: ‘1’}]
【问题讨论】:
-
final_instances是一个列表是否有特殊原因?它可以是一个字典,其中键是用户名,值是要计数的类型字典吗? -
在混合重音符号和单引号以及缺少的大括号之间,此代码无法执行。请发布准确的代码。
-
字典也可以作为 final_instances。我正在寻找
user1的ntype1的实例数,mtype2的实例数...等等
标签: python python-2.7 list dictionary