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]为无:打印“空”