swift - 字典和集合
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 - 字典和集合的更多相关文章
- Swift字典集合
字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...
- swift字典集合-备
Swift字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成 ...
- Swift 字典 Dictionary基本用法
import UIKit /* 字典的介绍 1.字典允许按照某个键访问元素 2.字典是由两部分组成, 一个键(key)集合, 一个是值(value)集合 3.键集合是不能有重复的元素, 值集合可以有重 ...
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
Python黑帽编程2.3 字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...
- python基础知识3——基本的数据类型2——列表,元组,字典,集合
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...
- Python基础-列表_元组_字典_集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Python强化训练笔记(一)——在列表,字典,集合中筛选数据
列表,字典,集合中根据条件筛选数据,如下所示 列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数 字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对 集合:{2,3 ...
- Python成长笔记 - 基础篇 (三)python列表元组、字典、集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 一.列表和元组的操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义 ...
- swift:创建集合视图UICollectionView
swift中创建集合视图和OC中差不多,主要是实现UICollectionViewDataSource数据源协议和UICollectionViewDelegateFlowLayout自定义布局协议,其 ...
随机推荐
- 一个ListView怎么展示两种样式
private class MyBaseMsgAdapter extends BaseAdapter { //获取数据适配器中条目类型的总数,修改成两种(纯文本,输入+文字) @Override pu ...
- Ruby安装Scss
Ruby安装Scss 引言 已经许久不写HTML了,今天有点以前的东西要改.但是刚装的Windows10,已经没有以前的Web开发环境了.只好重新安装. 结果Webstorm装好后配置Scss出现错误 ...
- socket 函数
1.创建套接字并返回一个描述符,该描述符可以用来访问套接字 #include<sys/types.h> #include<sys/socket.h> int socket(i ...
- 小白 安装和配置Tomcat 局域网内访问网页
1.官网http://tomcat.apache.org/ ,下载tomcat,解压就好 2.官网www.oracle.com, 下载javaJDK,截图如下,点击黄色荧光笔
- Java性能调优之:idea变慢解决
今天搬砖的时候遇到一个问题,idea总是卡死,完全无法愉快的玩耍.幸好机器是Linux系统的.于是通过以下方式解决了问题: 通过top命令,查看系统运行状态发现4个CPU中有1个CPU用户占用率为10 ...
- UnixBench-linux下的跑分软件
UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具.UnixBench会执行一系列的测试,包括2D和3D图形系统的性能,测试的结果不仅仅是CPU,内存, ...
- 夏夏的php开发笔记开写啦
主要写一些平时drupal.dedecms.帝国cms.wordpress等php程序开发过程中遇到的问题,以及解决的过程,记录夏夏的成长,把握契机,创造未来
- 对前台传回的list进行分割,并放在sql语句的in中
前端数据集传回数据 var matDeptHisMonthPlanStore = Ext.data.StoreManager.lookup('matDeptHisMonthPlanStore'); m ...
- 20个Mac用户必须掌握的触摸手势
我第一次接触MacBook时,最令我惊叹的就是MacBook的触摸板,通过各种手势,完全可以不用鼠标,且有些时候更加的快捷和方便.那么都有哪些手势呢?可以通过 -> 来查看学习各种手势的使用,下 ...
- angular 自定义指令 directive transclude 理解
项目中断断续续的用了下angular,也没狠下心 认真的学习.angular 特别是自定义指令这块 空白. transclude 定义是否将当前元素的内容转移到模板中.看解释有点抽象. 看解释有点抽象 ...