Python 检查索引对象值类型

Python 检查索引对象值类型,python,dictionary,Python,Dictionary,我有一本字典:dict={“key”:[None,“item 2”,“item 3”]} 如果“key”未知,如何检查dict[“key”][0]是否为None 到目前为止,我有: {k: dict[k][0] for k in dict.viewkeys()} 这给了我: {"key":None} 在我的应用程序中,我正在测试dict[“key”][0]是否已填充,其默认值为无。非常接近。如果需要所有键、值对,使值列表中的第一项为None,可以执行以下操作: unassigned_item

我有一本字典:
dict={“key”:[None,“item 2”,“item 3”]}

如果“key”未知,如何检查
dict[“key”][0]是否为None

到目前为止,我有:

{k: dict[k][0] for k in dict.viewkeys()}
这给了我:

{"key":None}

在我的应用程序中,我正在测试dict[“key”][0]是否已填充,其默认值为无。

非常接近。如果需要所有键、值对,使值列表中的第一项为
None
,可以执行以下操作:

unassigned_items = {k:v for k, v in mydict.viewitems() if v[0] is None}
请注意,您不应该使用
dict
作为变量名,因为它掩盖了内置的
dict
——即使是在示例代码中,也可能只是因为它可能误导人们

一旦你有了
未分配的\u项
,你就可以简单地测试
'key'
是否在
未分配的\u项中

if key in unassigned_items:
    do_something()

不是最安全/最干净的:

if d[d.keys()[0]][0] is None: print "Empty"
也许可以尝试过滤器(lambda k:dict[k][0]==None,dict.keys())


应该返回dict.keys()的所有成员的列表(键列表),这些成员的第一个元素是None(也就是说,对于dict[k][0]==None,它们返回True)

如果这是OP想要的——我不确定它是什么——那么OP为什么不在d中简单地使用
“key4”?绝对不应该使用裸露的,除非,在任何情况下。哦,我误解了这个问题。我以为他们在问密钥是否可能不存在,而不是你不知道密钥名。如果d[d.keys()[0]][0]为无:打印“空”