p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #4dbf56 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #ffffff; min-height: 15.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #ffffff }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #e44347 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "PingFang SC"; color: #4dbf56 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #00afca }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #93c96a }
p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "PingFang SC"; color: #e44347 }
span.s1 { }
span.s2 { color: #c2349b }
span.s3 { color: #ffffff }
span.s4 { font: 13.0px "PingFang SC" }
span.s5 { font: 13.0px Menlo }
span.s6 { color: #00afca }
span.s7 { color: #93c96a }
span.s8 { color: #e44347 }
span.s9 { color: #8b84cf }
span.s10 { color: #4dbf56 }
span.s11 { font: 13.0px "PingFang SC"; color: #4dbf56 }
span.s12 { font: 13.0px Menlo; color: #ffffff }
span.s13 { font: 13.0px Menlo; color: #00afca }

//: Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"

//字典 Dictionary (键值,数据对应的无序数据集合)

//声明字典

var dict:[String : String] = ["swift":"雨燕","Python":"大蟒","java":"爪哇岛","groovy":"时髦的"]

//var dict1:Dictionary<String,String> = ["swift":"雨燕","Python":"大蟒","java":"爪哇岛","groovy":"时髦的"]

//空字典的声明

var emptyDictionary1:[String:Int] = [:]

var emptyDictionAry2:Dictionary<Int, String> = [:]

var emptyDictionAry3 = [String:String]()

var emptyDictionary4 = Dictionary<Int,Int>()

print(dict["swift"])

dict["C++"]

dict.count

dict.isEmpty

emptyDictionary1.isEmpty

Array(dict.keys)

Array(dict.values)

for key in dict.keys {

print(key)

}

for value in dict.values {

print(value)

}

for (key, value) in dict {

print("\(key):\(value)")

}

let dict1 = [1:"A",2:"B",3:"C"]

let dict2 = [1:"A",2:"B",3:"C"]

dict1 == dict2//字典是无序的

//字典的操作

var user = ["name":"bobobo","passwork":"liuyubo","occupation":"programmer"]

//字典元素的修改

user["occupation"] = "freelancer"

user.updateValue("imooc", forKey: "password")

let oldPassword = user.updateValue("imooc", forKey: "password")

if let oldPassword = oldPassword,

let newPassword = user["password"] , oldPassword == newPassword {

print("注意:修改后的密码和之前一样,可能导致安全问题")

}

//添加元素

user["email"] = "imooc@imooc.com"

user

user.updateValue("imooc.com", forKey: "website")

user

//删除元素

user["website"] = nil

user

//user.removeValue(forKey: "email")

//user

if let email = user.removeValue(forKey: "email") {

print("电子邮箱\(email) 删除成功")

}

user.removeAll()

////集合 Set

//var skillsOfA : Set<String> = ["swift","oc","oc"]//集合自动去重,即集合中的元素是唯一的

//

//var emptySet1:Set<Int> = []

//var emptySet2 = Set<Double>()

//

//var vowels = Set(["A","E","I","O","U"])

//var skillsOfB:Set = ["HTML","CSS"]

//

////基本方法

//skillsOfA.count

//

//let set:Set<Int> = [2,2,2,2]

//set.count

//

//skillsOfA.isEmpty

//emptySet1.isEmpty

//

//let e = skillsOfA.first

//skillsOfA.contains("swift")

//

//for skill in skillsOfB {

//    print(skill)

//}

//

//let setA = [1,2,3]

//let setB = [3,2,1]

//

//setA == setB//无序,没有重复的元素

//集合的相关操作

var skillsOfA: Set<String> = ["swift","OC"]

var skillsOfB: Set<String> = ["HTML","CSS","Javascript"]

var skillsOfC: Set<String> = []

skillsOfC.insert("swift")

skillsOfC.insert("HTML")

skillsOfC.insert("CSS")

skillsOfC.insert("CSS")

////删除

//skillsOfC.remove("CSS")

//skillsOfC

//skillsOfC.remove("Javascript")

//skillsOfC

//

//if let skill = skillsOfC.remove("HTML") {

//    print("HTML is Removed")

//}

//

//skillsOfC.removeAll()

//并集 union  unionInPlace

skillsOfA.union(skillsOfC)//不改变skillsOfA

skillsOfA

//skillsOfA.formUnion(skillsOfC)//改变skillsOfA

//skillsOfA

//交集

skillsOfA.intersection(skillsOfC)

//减法

skillsOfA.subtract(skillsOfC)

skillsOfC.subtract(skillsOfA)

//异或

skillsOfA.union(["java","android"])

var skillsOfD:Set = ["swift"]

skillsOfD.isSubset(of: skillsOfA)

skillsOfD.isStrictSubset(of: skillsOfA)

skillsOfA.isSuperset(of: skillsOfD)

//总结,  选择合适的数据结构

//数组:有序

//集合:无序,唯一性,提供集合操作,快速查找

//字典:键-值数据对

swift - 字典和集合的更多相关文章

  1. Swift字典集合

    字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...

  2. swift字典集合-备

    Swift字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成 ...

  3. Swift 字典 Dictionary基本用法

    import UIKit /* 字典的介绍 1.字典允许按照某个键访问元素 2.字典是由两部分组成, 一个键(key)集合, 一个是值(value)集合 3.键集合是不能有重复的元素, 值集合可以有重 ...

  4. Python黑帽编程2.3 字符串、列表、元组、字典和集合

    Python黑帽编程2.3  字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...

  5. python基础知识3——基本的数据类型2——列表,元组,字典,集合

    磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...

  6. Python基础-列表_元组_字典_集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  7. Python强化训练笔记(一)——在列表,字典,集合中筛选数据

    列表,字典,集合中根据条件筛选数据,如下所示 列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数 字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对 集合:{2,3 ...

  8. Python成长笔记 - 基础篇 (三)python列表元组、字典、集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码   一.列表和元组的操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义 ...

  9. swift:创建集合视图UICollectionView

    swift中创建集合视图和OC中差不多,主要是实现UICollectionViewDataSource数据源协议和UICollectionViewDelegateFlowLayout自定义布局协议,其 ...

随机推荐

  1. rootkit后门检查工具RKHunter

    ---恢复内容开始--- rkhunter简介: 中文名叫"Rootkit猎手", rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检 ...

  2. Apache Shiro 学习记录5

    本来这篇文章是想写从Factory加载ini配置到生成securityManager的过程的....但是貌似涉及的东西有点多...我学的又比较慢...很多类都来不及研究,我又怕等我后面的研究了前面的都 ...

  3. Rss 订阅:php动态生成xml格式的rss文件

    Rss 简介: 简易信息聚合(也 叫聚合内容)是一种描述和同步网站内容的格式.使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新.网络用户可以在客户端借助于支持RS ...

  4. .NET Framework(.config)的配置文件架构

    配置文件是标准的XML文件..NET Framework定义了一组实现配置设置的元素.本节描述计算机配置文件.应用程序配置文件和安全配置文件的配置架构.如果希望直接编辑配置文件,您需要熟悉XML.XM ...

  5. eclipse项目打包

    一.直接在eclipse里export即可 二.如果需要打好的包可以直接使用,则需要修改包中的META-INF文件夹中的MANIFEST.MF文件,主要可能会涉及到的字段主要有以下两个. 1.Main ...

  6. TCP学习之一:TCP网络编程概念

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 一.TCP 面向连接的(UDP是无连接的) 全双工,建立连接之后 ...

  7. linux 正则表达式使用

    1.正则表达式概念 正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式的基本元素包括普通字符和元字 ...

  8. Orchard 模块开发学习笔记 (1)

    创建模块 首先,打开Bin目录下的Orchard.exe 等到出现orchard>后, 看看命令列表中是否存在 codegen module 如果不存在,则需要先执行:feature enabl ...

  9. 面localStorage用作数据缓存的简易封装

    面localStorage用作数据缓存的简易封装 最近做了一些前端控件的封装,需要用到数据本地存储,开始采用cookie,发现很容易就超过了cookie的容量限制,于是改用localStorage,但 ...

  10. 各大浏览器内核特性及对应的Browserhacks举例

    1.浏览器内核指的是什么? 简化的浏览器=用户界面+渲染引擎+js解析引擎+数据存储+网络部件 而通常所说的浏览器内核指的是页面渲染引擎(rendering engine). 2.渲染引擎 The r ...