Swift——Comment convertir un tableau en dictionnaire (la clé est l'élément du tableau et la valeur est le numéro de série en indice)

Parfois, il est nécessaire de convertir les indices et les éléments du tableau dans un dictionnaire. Par exemple, si vous utilisez des éléments de tableau pour trouver des indices, si vous utilisez une fonction pour rechercher, vous devez les rechercher et les obtenir dans une boucle à chaque fois, ce qui nécessite beaucoup de performances de calcul et de mémoire. À ce stade, convertissez l'original tableau dans un dictionnaire, la clé Il est plus pratique que la valeur soit un élément de tableau, et la valeur est le numéro de série en indice, de sorte que le numéro de série puisse être facilement recherché par la valeur de l'élément, et il n'y a pas besoin pour effectuer une recherche en boucle à chaque fois.

Pour convertir un tableau en dictionnaire, vous devez obtenir tour à tour chaque élément du tableau et son numéro de série en indice correspondant. Bien sûr, cette fonction peut également être réalisée en utilisant une boucle For, car le numéro de série en indice est obtenu en ipassant i=0et en i += 1obtenant dans la boucle For. Cependant, Swift n'a pas de boucle For de style C. La boucle For-In utilisée par Swift ne peut pas être utilisée directement pour obtenir le numéro d'indice d'un élément. Vous devez utiliser la fonction d'énumération de chaîne de Swift ou utiliser une boucle While String.enumerate().

Les deux méthodes suivantes sont introduites séparément et les tableaux utilisés sont les suivants :

let str = ["a", "b", "c"]

Méthode utilisant la boucle For-In :

//声明初始化一个空白字典,关键字为字符串,值为整数
var dist = [String: Int]()

// str.enumerated() 可以同时获取 str的index和value,这两个值的名称可以自己定义,这里为了说明所以写成index和value
for (index, value) in str.enumerated() {
    
    
    dist[value] = index
}

Façons d'utiliser une boucle While :

//声明初始化一个空白字典,关键字为字符串,值为整数
var dist = [String: Int]()

var i = 0
while (i < str.count) {
    
    
    dist[str[i]] = i
    i += 1
}

La sortie des deux est :

["c": 2, "b": 1, "a": 0]

De cette façon, on peut facilement obtenir le numéro de série d'un élément, comme le cnuméro de série d'un personnage :

//这里使用感叹号是因为这个值不一定存在于字典,或者说原数组中,直接等于的话,得到的是可选值‘Optional’类型,使用感叹号强制为一定有,当然你可以使用问好‘?’来添加如果没有返回什么值
print(dist["c"]!)
2

J'espère aider ceux qui en ont besoin ~

Je suppose que tu aimes

Origine blog.csdn.net/qq_33919450/article/details/130299814
conseillé
Classement