我有一本字典:dict = {"key":[None, "item 2", "item 3"]}
如果“密钥”未知,如何检查dict["key"][0] is None
。
到目前为止,我有这个:
{k: dict[k][0] for k in dict.viewkeys()}
给了我:
{"key":None}
在我的应用程序中,我正在测试是否已填充dict["key"][0]
,其默认值为None。
答案 0 :(得分:2)
你非常接近。如果您想要所有键值对,以便值列表中的第一项为None
,则可以执行以下操作:
unassigned_items = {k:v for k, v in mydict.viewitems() if v[0] is None}
请注意,您不应将dict
用作变量名称,因为它会屏蔽内置的dict
- 即使在示例代码中,只是因为它可能误导人。
获得unassigned_items
后,您只需测试以查看'key'
中是否有unassigned_items
:
if key in unassigned_items:
do_something()
答案 1 :(得分:0)
不是最安全/最干净的:
if d[d.keys()[0]][0] is None: print "Empty"
答案 2 :(得分:0)
也许尝试过滤(lambda k:dict [k] [0] == None,dict.keys())
应该返回dict.keys()(键列表)的所有成员的列表,其第一个元素是None(也就是说,它们为dict [k] [0] == None返回True)