1

我有一本字典: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]已填充,其默认值为无。

4

3 回答 3

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()
于 2012-07-12T15:30:52.547 回答
0

不是最安全/最干净的:

if d[d.keys()[0]][0] is None: print "Empty"
于 2012-07-12T15:33:07.970 回答
0

也许试试 filter(lambda k: dict[k][0] == None, dict.keys())

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

于 2012-07-12T15:47:10.333 回答