检查索引对象值类型

时间:2012-07-12 15:26:24

标签: python dictionary

我有一本字典: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。

3 个答案:

答案 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)