SWIFT——字典(dictionary)

1、字典的创建和初始化

2、创建空的字典

3、添加、修改和删除字典中的数据

4、根据key获取value

5、将value转换为特定的类型

6、枚举字典中的key和value

7、将key和value转换为数组

1 var employee1:Dictionary<String,String> = ["name":"bill","company":"Microsoft"]
2 println(employee1)          //[company:Microsoft,name:bill]按照首字母顺序排序的。
3
4 var employee2 = ["name":"John","company":"Oracle","age":32]//不指定类型的情况下,可以设置为其它类型,比如integer
5 println(employee2);

 1 var dict1 = ["product_name":"ice cream","price":5.5]
 2 println(dict1)         //price ="5.5; "product_name" = "ice cream",把5.5转换成了字符串。如果使用整数,在输出仍会保持整数。
 3
 4 var dict = Dictionary<Int, String>()         //创建一个空字典
 5 dict[20]="hello world"             //没有20是填加,有20是修改。
 6 println(dict)      //[20:hello world]
 7
 8 dict = [:]            //清空数组,key类型是int,value类型是string
 9
10 dict[21]="abcd"
11 dict[20]="xyz"
12 println(dict)          //[20:xyz,21:abcd]
13
14 if let oldValue = dict.updateValue("飞机“,forkey:21)      //如果字典里有21,就会返回以前的值,如果没有21,就返回nil。在swift语句,if后面没有圆括号。
15 {
16       println("旧的值是\(oldValue)")     //旧的值是abcd
17 }
18 println(dict)                                    //[20:xyz,21:飞机]
19 println(dict.count)                          //2
20
21 let age1:Int = employee2["age"] as Int //age是unexpected
22 println(age1);                                 //32
23
24 if let age2:int? = (employee2["age"]as? Int)//如果这个age不存在,那么将返回nil,但是int不能存nil,所以后加?      //这里输出32,如果改成employee2["age1"],则返回不存在这个key.
25 {
26        println(age2)
27 }
28 else
29 {
30        println("在字典中不存在这个key")
31 }
 1 dict[20] = nil            //直接删除字典中的某一个key,对应value也同时被删除。key和value总是成对出现的。
 2 println(dict)           //[21:飞机]   20已经被删除
 3
 4 let oldValue = dict.removeValueForKey(21)  //返回21对应的value
 5 println(oldValue)     //  飞机
 6
 7 //枚举字典中的key和value
 8 for (key, value) in employee1
 9 {
10         println("\(key):\(value)");
11 }
12
13 for key in employee1.keys
14 {
15        println(key)
16 }
17
18 for key in employee2.keys      //错误 ,employee2是隐式声明dict,所以会找不到keys
19 {
20 }
21 //转换一下
22 for key in (employee2 as Dictionary).keys
23 {
24       println(key)
25 }
26
27 for value in employee1.values
28 {
29        println(value)
30 }
31 dict[22] = "abc"
32 let keys = Array(dict.keys)
33 println(keys)  //[22]
34
35 let values = Array(dict.values)
36 println(values)       //[abc]
时间: 2025-01-08 14:13:30

SWIFT——字典(dictionary)的相关文章

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

Swift字典类

在Foundation框架中提供一种字典集合,它是由"键-值"对构成的集合.键集合不能重复,值集合没有特殊要求.键和值集合中的元素可以是任何对象,但是不能是nil.Foundation框架字典类也分为NSDictionary不可变字典和NSMutableDictionary可变字典.一.NSDictionary类 NSDictionary有很多方法和属性,下面总结其常用的方法和属性. initWithDictionary: 构造器,通过Swift的Dictionary创建NSDicti

swift字典集合-备

Swift字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. 字典声明与初始化 Swift字典类型是Dictionary,也是一个泛型集合. 在声明一个Dictionary类型的时候可以使用下面的语句之一. [html] view plain copy print? var studentDictionary1: Dictionary<Int, S

Swift 03.Dictionary

不可变字典 let let dictA = ["key1":"value1","key2":"value2","key3":4] print(dictA["key3"]) 可变字典 var 字典的键值对的类型 是根据初始化时候的类型来决定的,类型是后面无法改变的 swift的 Dictionary 类型的字典 var dictM:Dictionary = ["1":&

Python 字典(Dictionary) get()方法

描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 key -- 字典中要查找的键. default -- 如果指定键的值不存在时,返回该默认值值. 返回值 返回指定键的值,如果值不在字典中返回默认值None. 实例 以下实例展示了 get()函数的使用方法: #!/usr/bin/python dict = {'Name': 'Zara', 'A

Python 字典(Dictionary) setdefault()方法

描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: dict.setdefault(key, default=None) 参数 key -- 查找的键值. default -- 键不存在时,设置的默认键值;存在则不设置. 返回值 该方法没有任何返回值. 实例 以下实例展示了 setdefault()函数的使用方法: #!/usr/bin/pytho

索引器、哈希表Hashtabl、字典Dictionary(转)

一.索引器 索引器类似于属性,不同之处在于它们的get访问器采用参数.要声明类或结构上的索引器,使用this关键字. 示例: 索引器示例代码 /// <summary>/// 存储星期几的类.声明了一个get访问器,它接受字符串,并返回相应的整数/// </summary>public class 星期{    public string[] weeks = { "星期日", "星期一", "星期二", "星期三

c# 关于字典dictionary 按时间排序

上文中说到sortedlist 排序是键排序,不符合项目要求问题,接着使用字典dictionary 对value 为时间按照升序排序,问题解决.中间涉及到linq的使用.还有其他的写法,但发现下边的写法最直观也容易理解.var dicSort = from objDic in dic orderby objDic.Value descending select objDic; 这种写法最简单,也容易理解dicsort 目标字典,objdic对象应该是映射的无需定义的对象,dic 是你自己定义的字

C#中数组、集合(ArrayList)、泛型集合List&lt;T&gt;、字典(dictionary&lt;TKey,TValue&gt;)全面对比

为什么把这4个东西放在一起来说,因为c#中的这4个对象都是用来存储数据的集合--. 首先咱们把这4个对象都声明并实例化一下: //数组 string[] m_Str = new string[5]; //集合 ArrayList m_AList = new ArrayList(); //泛型集合 List<int> m_List = new List<int>(); //字典 Dictionary<int, string> m_Dt = new Dictionary&l

C#字典Dictionary排序(顺序、倒序)

这里是针对.NET版本过低的排序方式,没怎么用过,记录一下: 一.创建字典Dictionary 对象 假如 Dictionary 中保存的是一个网站页面流量,key 是网页名称,值value对应的是网页被访问的次数,由于网页的访问次要不断的统计,所以不能用 int 作为 key,只能用网页名称,创建 Dictionary 对象及添加数据代码如下: Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add