如何检查字典中是否存在键?我的字典是类型的[Type:Type?]
。
我不能简单地检查一下dictionary[key] == nil
,因为这可能是由值所导致的nil
。
有任何想法吗?
实际上,您的测试dictionary[key] == nil
可 用于检查字典中是否存在键。true
如果该值设置为,则不会产生nil
:
let dict : [String : Int?] = ["a" : 1, "b" : nil]
dict["a"] == nil // false, dict["a"] is .Some(.Some(1))
dict["b"] == nil // false !!, dict["b"] is .Some(.None)
dict["c"] == nil // true, dict["c"] is .None
要区分“字典中不存在键”和“键的值为零”,您可以执行嵌套的可选分配:
if let val = dict["key"] {
if let x = val {
println(x)
} else {
println("value is nil")
}
} else {
println("key is not present in dict")
}
问题内容: 比方说,我有一个关联数组,像这样:。 如何检查字典中是否存在? 问题答案: if key in array: # do something 关联数组在Python中称为字典,您可以在stdtypes文档中了解有关它们的更多信息。
rank ▲ ✰ vote url 47 435 86 477 url 检查一个键在字典中是否存在 在更新字典之前想检查键是否存在.我写了如下代码: if 'key1' in dict.keys(): print "blah" else: print "boo" 我想这不是最好的方法,还有什么更好的方法? 用in. d = dict() for i in xrange(100):
问题内容: 我想在更新密钥值之前测试字典中是否存在密钥。我写了以下代码: 我认为这不是完成此任务的最佳方法。有没有更好的方法来测试字典中的键? 问题答案: 是测试密钥是否存在的预期方法。 如果你想使用默认值,可以随时使用dict.get(): 如果你想始终确保任何键的默认值,则可以重复使用,也可以从模块中使用它,如下所示: 但总的来说,关键字是最好的方法。
问题内容: 给定字典,我如何找出该字典中的给定键是否已设置为非值? 即,我想这样做: 即,如果要在其中增加一个值,我想增加该值,否则将其设置为1。 问题答案: 您正在寻找(适用于Python 2.5+)。这个 会做你想要的。 对于常规Python来说,如果给定键没有值,则访问dict时 不会 获得结果-将引发a。因此,如果您想使用Regular而不是代码,则可以使用
问题内容: 我有一个Python字典列表,如下所示: 我想检查列表中是否已存在具有特定键/值的字典,如下所示: 问题答案: 这是一种实现方法: 括号中的部分是一个生成器表达式,该表达式将为每个具有要查找的键值对的字典返回,否则为。 如果密钥也可能丢失,则上面的代码可以给您一个。您可以通过使用并提供默认值来解决此问题。如果不提供 默认 值,则返回。
问题内容: 是否有更可读的方法来检查是否存在嵌入字典的键而无需独立检查每个级别? 可以说我需要在埋藏的对象中获取此值(示例取自Wikidata): 为了确保不会以运行时错误结束,有必要检查每个级别,如下所示: 我可以想到的另一种解决方法是将其包装到一个结构中,对于这样一个简单的任务,我也觉得很尴尬。 我正在寻找类似的东西: 如果所有级别都存在,则返回。 问题答案: 简而言之,使用Python,您必