Python 如何获得所有相同的';键[0]';并在字典中计算其值

Python 如何获得所有相同的';键[0]';并在字典中计算其值,python,dictionary,cluster-computing,Python,Dictionary,Cluster Computing,orderGrid函数可以成功运行,但由于orderrow函数用于集群所有金额,从“A”开始,然后对行(“A”、“B”、“C”、“D”)进行排序,因此您可以使用排序并直接应用于计数 counts = {'A1':3,'A2':2,'A3':1,'A4':10,'B1':11,'B2':12,'B3':3,'B4':0,'C1':3,'C2':16,'C3':8,'C4':2} #Order grid def orderGrid(grid): lst = list() for

orderGrid函数可以成功运行,但由于orderrow函数用于集群所有金额,从“A”开始,然后对行(“A”、“B”、“C”、“D”)进行排序

,因此您可以使用
排序
并直接应用于
计数

counts = {'A1':3,'A2':2,'A3':1,'A4':10,'B1':11,'B2':12,'B3':3,'B4':0,'C1':3,'C2':16,'C3':8,'C4':2}


#Order grid
def orderGrid(grid):

    lst = list()
    for key,val in grid.items():
        lst.append((val,key))

    lst.sort(reverse=True)

    for val,key in lst:
        print key, val

#Order row
def orderRow(row):
    count = dict()
    for key in row.items():
        if key[0] not in count:
            count[key] = row[key]
        else:
            count[key] += row[key]
    print 'A:', count
您可以使用一个新的
dict
并按如下方式分配键值:

import operator

sorted_x = sorted(counts.items(), key=operator.itemgetter(1), reverse=True)
替换这些函数的方式如下所示

In [71]: mydict = {}

In [72]: for k, v in counts.items():
    ...:     if k[0] not in mydict:
    ...:         mydict[k[0]] = v
    ...:     else:
    ...:         mydict[k[0]] += v
    ...:         

In [73]: mydict
Out[73]: {'A': 16, 'B': 26, 'C': 29}

你想要的输出是什么?@manvi77像,{A-row:16,B-row:26…}
import operator

counts = {'A1':3,'A2':2,'A3':1,'A4':10,'B1':11,'B2':12,'B3':3,'B4':0,'C1':3,'C2':16,'C3':8,'C4':2}


#Order grid
def orderGrid(grid):
    sorted_x = sorted(counts.items(), key=operator.itemgetter(1), reverse=True)
    for key,val in sorted_x:
        print key, val

#Order row
def orderRow(row):
    mydict = {}
    for k, v in row.items():
        if k[0] not in mydict:
            mydict[k[0]] = v
        else:
            mydict[k[0]] += v
    print mydict