Swift 4 字典用于存储相同类型的无序值列表。
Swift 4字典使用称为 key 的唯一标识符来存储一个值,该值以后可以被引用并通过同一键进行查找。与数组中的元素不同,字典中的元素没有指定的顺序,当您需要根据其标识符查找值时,可以使用字典。
您可以使用以下初始化程序语法创建某种类型的空字典-
var someDict=[KeyType: ValueType]()
您可以使用以下简单语法来创建一个空字典,该字典的键将是Int类型,并且关联的值将是字符串-
var someDict=[Int: String]()
这是一个从一组给定值创建字典的示例-
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"]
Swift 4允许您从数组(键值对)创建Dictionary。
var cities=[“Delhi","Bangalore","Learnfk"]
您可以使用以下简单语法来创建一个空字典,该字典的键将是Int类型,并且关联的值将是字符串-
var Distance=[2000,10, 620]
这是一个从一组给定值创建字典的示例-
let cityDistanceDict=Dictionary(uniqueKeysWithValues: zip(cities, Distance))
上面的代码行将创建一个字典,其中以Cities作为键,而Distance作为Value-
Swift 4允许您从字典中过滤值。
var closeCities=cityDistanceDict.filter { $0.value < 1000 }
如果我们运行上面的代码,我们的closeCities词典将是。
["Bangalore" : 10 , "Learnfk" : 620]
Swift 4允许您创建Dictionary值的分组。
var cities=["Delhi","Bangalore","Learnfk","Dehradun","Bihar"]
您可以使用以下简单语法根据第一个字母对字典的值进行分组。
链接:https://www.learnfk.comhttps://www.learnfk.com/swift/swift-dictionaries.html
来源:LearnFk无涯教程网
var GroupedCities=Dictionary(grouping: cities ) { $0.first! }
以上代码的输出将是
["D" :["Delhi","Dehradun"], "B" : ["Bengaluru","Bihar"], "H" : ["Learnfk"]]
您可以使用下标语法从字典中检索值,将要检索的值的键在紧随字典名称之后的方括号内传递,如下所示:
var someVar=someDict[key]
让我们检查以下示例,以从字典创建,初始化和访问值-
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] var someVar=someDict[1] print( "Value of key=1 is\(someVar)" ) print( "Value of key=2 is\(someDict[2])" ) print( "Value of key=3 is\(someDict[3])" )
编译并执行上述代码后,将产生以下输出-
Value of key=1 is Optional("One") Value of key=2 is Optional("Two") Value of key=3 is Optional("Three")
您可以使用 updateValue(forKey:)方法将现有值添加到字典的给定键中,此方法返回字典值类型的可选值。这是一个简单的示例-
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] var oldVal=someDict.updateValue("New value of one", forKey: 1) var someVar=someDict[1] print( "Old value of key=1 is\(oldVal)" ) print( "Value of key=1 is\(someVar)" ) print( "Value of key=2 is\(someDict[2])" ) print( "Value of key=3 is\(someDict[3])" )
编译并执行上述代码后,将产生以下输出-
Old value of key=1 is Optional("One") Value of key=1 is Optional("New value of one") Value of key=2 is Optional("Two") Value of key=3 is Optional("Three")
您可以通过在给定的键处分配新值来修改字典的现有元素,如以下示例所示:
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] var oldVal=someDict[1] someDict[1]="New value of one" var someVar=someDict[1] print( "Old value of key=1 is\(oldVal)" ) print( "Value of key=1 is\(someVar)" ) print( "Value of key=2 is\(someDict[2])" ) print( "Value of key=3 is\(someDict[3])" )
编译并执行上述代码后,将产生以下输出-
Old value of key=1 is Optional("One") Value of key=1 is Optional("New value of one") Value of key=2 is Optional("Two") Value of key=3 is Optional("Three")
您可以使用 removeValueForKey()方法从字典中删除键/值对,此方法删除键值对(如果存在)并返回删除的值,或者如果没有值则返回nil。
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] var removedValue=someDict.removeValue(forKey: 2) print( "Value of key=1 is\(someDict[1])" ) print( "Value of key=2 is\(someDict[2])" ) print( "Value of key=3 is\(someDict[3])" )
编译并执行上述代码后,将产生以下输出-
Value of key=1 is Optional("One") Value of key=2 is nil Value of key=3 is Optional("Three")
您还可以使用下标语法,通过为该键分配一个 nil 值从字典中删除一个键-值对(key/value)。这是一个简单的示例-
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] someDict[2]=nil print( "Value of key=1 is\(someDict[1])" ) print( "Value of key=2 is\(someDict[2])" ) print( "Value of key=3 is\(someDict[3])" )
编译并执行上述代码后,将产生以下输出-
Value of key=1 is Optional("One") Value of key=2 is nil Value of key=3 is Optional("Three")
您可以使用 for-in 循环遍历Dictionary中的整个键/值对(key/value)集合,如以下示例所示-
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] for (index, keyValue) in someDict.enumerated() { print("Dictionary key\(index) - Dictionary value\(keyValue)") }
编译并执行上述代码后,将产生以下输出-
Dictionary key 2 - Dictionary value Two Dictionary key 3 - Dictionary value Three Dictionary key 1 - Dictionary value One
您可以使用 enumerate()函数,该函数返回项目的索引及其(键,值)对,如下面的示例所示:
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] for (key, value) in someDict.enumerated() { print("Dictionary key\(key) - Dictionary value\(value)") }
编译并执行上述代码后,将产生以下输出-
Dictionary key 0 - Dictionary value (key: 2, value: "Two") Dictionary key 1 - Dictionary value (key: 3, value: "Three") Dictionary key 2 - Dictionary value (key: 1, value: "One")
您可以从给定的字典中提取键/值对的列表,以为键和值构建单独的数组。这是一个示例-
var someDict:[Int:String]=[1:"One", 2:"Two", 3:"Three"] let dictKeys=[Int](someDict.keys) let dictValues=[String](someDict.values) print("Print Dictionary Keys") for (key) in dictKeys { print("\(key)") } print("Print Dictionary Values") for (value) in dictValues { print("\(value)") }
编译并执行上述代码后,将产生以下输出-
Print Dictionary Keys 2 3 1 Print Dictionary Values Two Three One
您可以使用字典的只读 count 属性来查找字典中的项数,如下所示-
var someDict1:[Int:String]=[1:"One", 2:"Two", 3:"Three"] var someDict2:[Int:String]=[4:"Four", 5:"Five"] print("Total items in someDict1 =\(someDict1.count)") print("Total items in someDict2 =\(someDict2.count)")
编译并执行上述代码后,将产生以下输出-
Total items in someDict1=3 Total items in someDict2=2
您可以使用字典的只读 empty 属性来确定字典是否为空,如下所示-
var someDict1:[Int:String]=[1:"One", 2:"Two", 3:"Three"] var someDict2:[Int:String]=[4:"Four", 5:"Five"] var someDict3:[Int:String]=[Int:String]() print("someDict1 =\(someDict1.isEmpty)") print("someDict2 =\(someDict2.isEmpty)") print("someDict3 =\(someDict3.isEmpty)")
编译并执行上述代码后,将产生以下输出-
someDict1=false someDict2=false someDict3=true
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)