swift_Dictionary 字典

//

//  main.Swift

//  字典

//

//  Created by zhangbiao on 14-6-15.

//  Copyright (c) 2014年 理想. All rights reserved.

//

import Foundation

println("字典")

/*

字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典

*/

//(1)创建一个字典

var dic:Dictionary<String,String>=["三国演义":"罗贯中","水浒传":"施耐庵","红楼梦":"曹雪芹","西游记":"吴承恩"];

println(dic);

//执行结果:[三国演义: 罗贯中, 水浒传: 施耐庵, 红楼梦: 曹雪芹, 西游记: 吴承恩]

//(2)访问字典

var name=dic["三国演义"];

println(name);

//执行结果:罗贯中

//(3)向字典中添加键值

var student:Dictionary<String,Int> = ["小明":10001,"小华":10002,"小红":10003];  // 声明一个学生字典  键: 姓名  值:学号

//添加

student["理想"]=10004;

println(student);

//执行结果:[小华: 10002, 小红: 10003, 小明: 10001, 理想: 10004]

//修改

student.updateValue(12345,forKey:"理想");

// 将理想的学号改为12345  updateValue() 这个方法返回更新值之前的原值。这样方便我们检查更新是否成功

println(student);

//执行结果:[小华: 10002, 小红: 10003, 小明: 10001, 理想: 12345]

//删除

student.removeValueForKey("理想"); //将理想 删除

println(student);

//执行结果:[小华: 10002, 小红: 10003, 小明: 10001]

//获得键对应的值

let value = student["小明"]; //获取键为"小明"对应的value

println("小明 的 value 为 \(value)");

//执行结果: 小明 的 value 为 10001

//(4)遍历  for in 字典  会以元组(键,值)的形式返回

for (key,value) in student  //无序

{

println("键:\(key) 值:\(value)");

}

//执行结果:

/*

键:小华 值:10002

键:小红 值:10003

键:小明 值:10001

*/

//或者

for tuples in student  //无序

{

println("键:\(tuples.0) 值:\(tuples.1)");

}

//我们也可以通过访问他的keys或者values属性(都是可遍历集合)检索一个字典的键或者值

for key in student.keys

{

println("key=:\(key)");

}

//执行结果:

/*

key=:小华

key=:小红

key=:小明

*/

for value in student.values

{

println("value=:\(value)");

}

//执行结果:

/*

key=:10002

key=:10003

key=:10001

*/

//(5)通过构造方法创建字典

var namesOfIntegers = Dictionary<Int, String>()

//(6)字典类型的赋值和拷贝行为

/*

注意:字典和数组的拷贝是不同的

1.无论何时将一个字典实例赋给一个常量或变量,或者传递给一个函数或方法,这个字典会即会在赋值或调用发生时被拷贝。

2.如果字典实例中所储存的键(keys)和/或值(values)是值类型(结构体或枚举),当赋值或调用发生时,它们都会被拷贝。相反,如果键(keys)和/或值(values)是引用类型,被拷贝的将会是引用,而不是被它们引用的类实例或函数

*/

var student2=student;  // 字典赋值

println("  student 为:\(student)\n student2 为:\(student2) ");

/*

执行结果:

student  为:[小华: 10002, 小红: 10003, 小明: 10001]

student2 为:[小华: 10002, 小红: 10003, 小明: 10001]

*/

student.updateValue(12345,forKey:"小明"); // 改变 student 中 小明的 value  student2不会改变

println("  student 为:\(student)\n student2 为:\(student2) ");

/*

执行结果:

student 为: [小华: 10002, 小红: 10003, 小明: 12345]

student2 为:[小华: 10002, 小红: 10003, 小明: 10001]

*/

时间: 2024-10-20 13:28:17

swift_Dictionary 字典的相关文章

python--15 字典:当索引不好用

字典是python唯一的影射类型 hash >>> brand = ['李宁', '耐克', '阿迪达斯'] >>> slogan = ['一切皆有可能', 'Just do it','Impossible is nothing'] >>> print('李宁的口号是:',slogan[brand.index('李宁')]) 李宁的口号是: 一切皆有可能 字典不是序列类型 ,是映射类型 字符串 列表 元组是序列类型 创建和访问索引   标志性符号--花

如何通过字典表来获取下拉数据的实现

①在web.xml中添加监听,启动的时候初始化. <!--Web ApplicationContext 载入,继承处Spring的ApplicationContextListener --> <listener> <listener-class>cn.sccl.common.web.StartupListener</listener-class> </listener> ②我们需要在启动Tomcat的时候,初始化bizCode数据 package

字典及其方法

常用操作: 索引 get,has_key, 新增 setdefalt,update, 删除 pop,popitem,clear 键.值.键值对 items,values,values 循环  for i in info: print(i,info[i])for k,v in info.items(): print(k,v) 长度 len 字典方法 dic.clear() #删除字典中所有项 dic.copy() #复制列表中所有项 dic.fromkeys(S[,v]) #新建字典,键为S,值为

SQL Server2005+、MySQL、Oracle 数据库字典生成工具

之前找的数据库字典生成工具基本上都依赖于 Office Com 组件,在不安装 Office的情况下无法使用.怒,于是自己用C# 写了一个. 特征如下:    一.支持的数据库 MS SQL Server 2005+.My Sql.Oracle    二.支持的文档类型 Html.CHM.Docx    三.无需安装Office即可生成 Docx 格式的Word文件    四.基于 .net framework 3.5 框架,电脑上需要安装 .net framework 3.5.       

python基础:python循环、三元运算、字典、文件操作

目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执行:if语句有三种格式,如下: 在多分支的if表达式中,即使多个条件同时为真,也只会执行一个,首先测试为真: 选择执行 单分支的if语句 if CONDITION: 条件为真分支 双分支的if语句 if CONDITION 条件为真分支 else 条件不满足时分支 多分支的if语句 if CONDI

按照字典排序

按照字典排序, 按照字典的value排序,类似sort -k命令 import operator x = {1:2,3:4, 4:3, 2:1, 0:0} sorted x =sorted(x.iteritems(), key = operator.itemgetter(1)) 0表示根据key排序,1表示根据value排序 In [33]: sorted(x.iteritems(),key=operator.itemgetter(0))                             

hdu 1251 统计难题(字典树)

Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注意:本题只有一组测试数据,处理到文件结束. Output 对于每个提

bing的简单英文字典工具

今天看到园友心白水撰写的<简单翻译工具--必应字典第三方API使用方法>,感觉很不错,所以用Python也写了一个.源码如下: 1 import urllib.request 2 import json 3 4 serviceurl='http://xtk.azurewebsites.net/BingDictService.aspx?Word=' 5 6 while True: 7 word = input('请输入英文单词: ') 8 if len(word) < 1 : 9 brea

无线安全专题_破解篇03--打造个人字典

上一篇讲解了如何通过Kali破解Pin码,今天继续无线安全专题破解篇的第三讲:打造个人字典.通过第一课,我们知道想要破解WPA加密,需要一个强大的字典.字典的强大直接决定了破解的可能性,废话不多说,咱们就学习一下怎么使用kali中的工具生打造个人字典.  一.crunsh工具介绍 今天主要说的是crunsh这款工具,专门用来生成字典. 命令参数: -b              #体积大小,比如-b 20mib 或者 -b 20kib -c              #密码个数(行数),比如80