我的代码看起来像这样:
var dict = ["a": 1, "b": 2]
var valueInDict = 1
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否可以仅使用值来访问密钥,在本例中为"a".
使用Dictionary值和键属性记录为具有相同顺序的事实:
if let index = dict.values.indexOf(valueInDict) {
let key = dict.keys[index]
print(key)
}
Run Code Online (Sandbox Code Playgroud)
不可能通过键的值来获取键,因为多个键可以具有相同的值。例如,如果您制作这样的字典
let dict = [
"a" : 7
, "b" : 3
, "c" : 11
, "d" : 7
, "e" : 3
, "f" : 11
]
Run Code Online (Sandbox Code Playgroud)
并尝试找到 value 的键7,会有两个这样的键 -"a"和"d"。
如果要查找映射到特定值的所有键,可以像这样迭代字典:
let search = 7
let keys = dict // This is a [String:int] dictionary
.filter { (k, v) -> Bool in v == search }
.map { (k, v) -> String in k }
Run Code Online (Sandbox Code Playgroud)
这将生成具有该search值的所有条目的键,或者当search字典中不存在该值时生成一个空数组。
| 归档时间: |
|
| 查看次数: |
2966 次 |
| 最近记录: |