在Swift中找到给定的Dictionary元素值的键

时间:2015-11-15 12:26:39

标签: swift

我的代码如下所示:

var dict = ["a": 1, "b": 2]

var valueInDict = 1

我的问题是,是否可以仅使用该值来访问密钥,在本例中为“a”。

2 个答案:

答案 0 :(得分:8)

使用记录字典值和键属性具有相同顺序的事实:

Stack* Delete_theNode(int the_node) {
    //check if it is on the head
    if (the_node==head->number) {
        Stack * temp = head;
        head = head->next;
        free(temp);
        return;

     }

    Stack* cur = head->next;
    Stack* prev = head;
    //while cur is not NULL and prev is not NULL, this is also legit  
    while (!cur && !prev) { 
        if (the_node == cur->number) {
            Stack *tmp = cur;//the deleted node
            prev->next = cur->next;
            free(tmp);
            return;
        }
        prev = cur;
        cur = cur->next;
     }
 }

答案 1 :(得分:3)

无法通过其值获取 键,因为多个键可以具有相同的值。例如,如果你制作这样的字典

let dict = [
    "a" : 7
,   "b" : 3
,   "c" : 11
,   "d" : 7
,   "e" : 3
,   "f" : 11
]

并尝试找到值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 }

这会生成具有search值的所有条目的键,或者在字典中不存在search值时生成空数组。