我有一本字典词典如下:
dictofdict = {'001': {'date': 201504, 'status':'New'}, '002': {'date':201504, 'status':'Constant', 'rate':'-10'}, '003':{'date': 201504, 'status':'In Review'}}
内部词典可能包含也可能没有以下所有键:日期,状态和费率。例如:001和003的值字典中没有密钥率。
如何阅读这本字典词典,以便输出如下。我只对内部词典中的日期和状态键感兴趣。
201504 001 New
201504 002 Constant
201504 003 In Review
答案 0 :(得分:7)
您可以使用if
子句检查它们是否存在于内部词典中
>>> for k,v in dictofdict.items():
... if 'date' in v and 'status' in v:
... print("{}\t{}\t{}".format(v['date'],k,v['status']))
...
201504 003 In Review
201504 002 Constant
201504 001 New
如果您特别关注订单,则必须使用sorted
作为字典,否则无法订购
>>> for k,v in sorted(dictofdict.items()):
... if 'date' in v and 'status' in v:
... print("{}\t{}\t{}".format(v['date'],k,v['status']))
...
201504 001 New
201504 002 Constant
201504 003 In Review
作为Padraic mentions,您可以使用列表推导来存储这些值。
[(k, d["date"], d["status"]) for k, d in sorted(dictofdict.items()) if "date" in d and "status" in d]
这可以用作
>>> l = [(k, d["date"], d["status"]) for k, d in sorted(dictofdict.items()) if "date" in d and "status" in d]
>>> for i,j,k in l:
... print("{}\t{}\t{}".format(i,j,k))
...
201504 001 New
201504 002 Constant
201504 003 In Review
如下面的JonCle mentions
您也可以在条款中使用set.issubset
。
这可以用作
>>> for k,v in sorted(dictofdict.items()):
... if {'date', 'status'}.issubset(v):
... print("{}\t{}\t{}".format(v['date'],k,v['status']))
...
201504 001 New
201504 002 Constant
201504 003 In Review
最后一种方法是EAFP。被称为更容易请求宽恕而非许可,您可以完全避免if
条款!
>>> for k, v in sorted(dictofdict.items()):
... try:
... print '{date}\t{}\t{status}'.format(k, **v)
... except KeyError:
... pass
...
201504 001 New
201504 002 Constant
201504 003 In Review
这是因为我们假设密钥存在于字典中。如果不存在,则会引发异常。在这里,我们选择忽略它,因为它不是我们所必需的。
注意:
正如你在这里有一个字典,你可以利用这里的format
方法来打印字典的键(你可以看到几个例子here)并提供字典的键作为format
这可以作为
完成print('{date}\t{}\t{status}'.format(k, **v))
答案 1 :(得分:0)
为此,您需要检查内部词条是否包含键var sum = 0.0;
for(int i=0;i<data.Length;i++)
sum += Math.Max(data[i],0);
和public static unsafe float FasterCompare(float value)
{
var val = *(int*) &value;
return val > 0 ? value : 0;
}
。另外,要按顺序打印,您可以使用status
功能。
date