繁体   English   中英

字典的列表理解格式

[英]List Comprehension Format for Dictionaries

我有一本字典,其中包含我的客户的三个类别,每个类别下有多个客户:

ddd = {'category 1:': 
         {'A': 50.5,
          'B': 28.9,
          'C': 46.3,
          'D': 513.8},
       'category 2:': {'E': 20.5, 'C': 48.1},
       'category 3:': {'D': 28.2, 'F': 68.3}}

每个子词典中的数字代表他们支付的美元金额。 因此,我想将所有数字转换为带两位小数的字符串美元金额格式,如“A”:50.5 -> “A”:“$50.50”。 理想的输出将是:

{'category 1:': {'A': '$50.50', 'B': '$28.90', 'C': '$46.30', 'D': '$513.80'}, 'category 2:': {'E': '$20.50', 'C': '$48.10'}, 'category 3:': {'D': '$28.20', 'F': '$68.30'}}

这是我的解决方案:

for a,b in ddd.items():
    for i,j in b.items():
        b[i] = "$" + "{0:,.2f}".format(j)

这会起作用,但我想了解是否可以将上面的嵌套 for 循环编写成类似于单行列表理解格式的格式。 我试过

{a:b for i,("$" + "{0:,.2f}".format(j)) in b.items() for a,b in ddd.items()} 

但这似乎不起作用。 先感谢您!

以简化的格式编写代码。

像这样?

ddd = {k: {ik: "$" + "{0:,.2f}".format(v) for ik, v in v.items()} for k, v in ddd.items()}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM