Python代码中的逻辑问题

Vetrivelkumar Pandi

我是Python的新手,正在编写一个简单的程序

输入值

{'messagingservice': 'build4', 
 'oltpdatabase': 'build1', 
 'paymentsdatabase': 'build2', 
 'restserver': 'build5', 
 'PESQL': 'build3', 
 'configdatabase': 'build1'} 

预期输出如下

{'build4': 'messagingservice', 
 'build5': 'restserver', 
 'build2': 'paymentsdatabase', 
 'build3': 'PESQL', 
 'build1': 'oltpdatabase,configdatabase '}

以下是我使用的代码...

#!/usr/bin/python
import json
import ast
from sys import argv
data = json.dumps(argv[1]);
json_to_unicode = json.loads(data)
unicode_to_dic = ast.literal_eval(json_to_unicode);
print(unicode_to_dic);
result_dic={};
data='';
for k,v in unicode_to_dic.iteritems():
  if v in result_dic:
    data=data.join((result_dic[v],','));
    print (data)
    result_dic[v]=data

  else:
    result_dic[v]=k;

print(result_dic)

实际输出为:

{'build4': 'messagingservice', 
 'build5': 'restserver', 
 'build2': 'paymentsdatabase', 
 'build3': 'PESQL', 
 'build1': 'oltpdatabase,'}

缺少更多价值。

好吃

您的加入未加入新项目

result_dic={}
data=''
for k,v in d.iteritems():
   if v in result_dic.keys():
      data=data.join((result_dic[v],', ',k))
      result_dic[v]=data
   else:
      result_dic[v]=k

print(result_dic)

退货

{'build4': 'messagingservice', 'build5': 'restserver', 'build2':   'paymentsdatabase', 'build3': 'PESQL', 'build1': 'oltpdatabase, configdatabase'}

你也可以使用 collections.Counter

from collections import Counter
new =Counter() 
d={'messagingservice': 'build4', 'oltpdatabase': 'build1', 'paymentsdatabase': 'build2', 'restserver': 'build5', 'PESQL': 'build3','configdatabase': 'build1'} 
for k,v in d.items():
    if new[v]:
        new[v]+=', '+k
    else:
        new[v]=k
print new

退货

Counter({'build1': 'oltpdatabase, configdatabase',
         'build2': 'paymentsdatabase',
         'build3': 'PESQL',
         'build4': 'messagingservice',
         'build5': 'restserver'})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章