【发布时间】:2020-09-03 00:58:11
【问题描述】:
mylist = [(0.8132195134810816, 'A'), (0.79314903781799, 'B'), (0.3931539216409497, 'A'), (0.23487952756579994, 'B'), (0.06686513021322447, 'C'), (0.008103227303653366, 'C'), (0.007403104126575008, 'D'), (-0.0041128367759631496, 'D'), (-0.005739579154553378, 'D'), (-0.008074572907817046, 'B')]
#我已经尝试了一些转换。请注意,我可以使用 for 循环来做到这一点。我想知道#there 是否有办法通过字典理解来做到这一点。当然,我可以构建一个常规的#dictionary,但希望有一系列过滤器单行。
newdict = dict()
for symbol in ['A','B','C','D']: # semesters
values = [item for item, symbol_item in mylist if symbol_item == symbol]
print (symbol, sum(values)/len(values))
newdict[symbol] = sum(values)/len(values)
#我希望有办法不列出符号
#尝试使用默认字典将键的值放入列表中,但这不起作用。
mydict = defaultdict(list)
mydict.update({key: (mydict[key] + [value]) for value,key in my list})
【问题讨论】:
标签: python dictionary dictionary-comprehension