字典,即我们可以通过索引来查找更详细的内容。每个item都是由一对index:value构成的

  • 索引可以有副本,但是试图根据存在副本的索引访问元素时,只会取最靠后的那个。
  • 索引必须是immutable的,意味着可以用string, number,tuple都可以,但是list不行
#创建字典
>>> dicA = { 'Num':1 , 'Grade':98 , 'Sch':yes }

#访问元素
>>> print dicA['Sch'], dicA['Num']
yes 1

#添加元素
>>> dicB = {'When':'Today' , 'Affair':'Meeting' , 'Who':'Tom'}
>>> dicB['WithWho'] = 'Sunny'
>>> print dicB
{'Affair': 'Meeting', 'Who': 'Tom', 'When': 'Today', 'WithWho': 'Sunny'}

#更新元素
>>> dicB['Who'] = 'XJ'
>>> print dicB
{'Affair': 'Meeting', 'Who': 'XJ', 'When': 'Today', 'WithWho': 'Sunny'}

#删除元素
>>> dicB = {'When':'Today' , 'Affair':Meeting , 'Who':Tom}
>>> del dicB['When']
>>> print dicB
{'Affair': 'Meeting', 'Who': 'Tom'}

#清空元素
>>> dicB.clear()
>>> print dicB
{}

#删除整个字典
>>> del dicB
>>> print dicB
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'dicB' is not defined

Built-in Functions

cmp(dict1, dict2)

Compares elements of both dict.Returns 0 if both dictionaries are equal, -1 if dict1 < dict2 and 1 if dict1 > dic2.

>>> dicA,dicB
({'Num': 1, 'Sch': 'yes'}, {'Num': 2, 'Sch': 'yes'})
>>> del dicB['Num']
>>> cmp(dicA,dicB)
1
>>> dicA,dicB
({'Num': 1, 'Sch': 'yes'}, {'Sch': 'yes'})
>>> dicB['Num']=1
>>> cmp(dicA,dicB)
0

len(dict)

Gives the total length of the dictionary. This would be equal to the number of items in the dictionary.

>>> len(dicA)
2

str(dict)

Produces a printable string representation of a dictionary

>>> str(dicA)
"{'Num': 1, 'Sch': 'yes'}"
>>> print str(dicA)
{'Num': 1, 'Sch': 'yes'}

type(variable)

Returns the type of the passed variable. If passed variable is dictionary, then it would return a dictionary type

>>> print "%s" %type(dicA)
<type 'dict'>

Built-in Methods

dict.clear()

Removes all elements of dictionary dict

>>> dicB.clear()
>>> print dicB
{}

dict.copy()

Returns a shallow copy of dictionary dict. VS DicA = DicB means these two dictionaries share the same address, one is modified automaticaly with the other is changed

>>> dicB=dict.copy(dicA)    #或dicB.copy(dicA)
>>> dicB['Num']=2
>>> dicA,dicB
({'Num': 1, 'Sch': 'yes'}, {'Num': 2, 'Sch': 'yes'})

dict.fromkeys()

Create a new dictionary with keys from seq and values set to value.

>>> dicE = {}
>>> dicE
{}
>>> seq = ('Who','When','What')
>>> dicE = dict.fromkeys(seq)   #或dicE.fromkeys(seq)
>>> dicE
{'What': None, 'Who': None, 'When': None}
>>> dicE = dict.fromkeys(seq,'XXX')
>>> dicE
{'What': 'XXX', 'Who': 'XXX', 'When': 'XXX'}

dict.get(key, default=None)

For key key, returns value or default if key not in dictionary

>>> dict.get(dicE,'Which')  #或dicE.get('Which')
>>> dict.get(dicE,'Who')
'XXX'

dict.has_key(key)

Returns true if key in dictionary dict, false otherwise

>>> dict.has_key(dicE,'Who')    #或dicE.has_key('Who')
True

dict.items()

Returns a list of dict's (key, value) tuple pairs

>>> dict.items(dicE)    #或dictE.items()
[('What', 'XXX'), ('Who', 'XXX'), ('When', 'XXX')]

dict.keys()

Returns list of dictionary dict's keys

>>> dict.keys(dicE) #或dicE.keys()
['What', 'Who', 'When']

dict.setdefault(key, default=None)

Similar to get(), but will set dict[key]=default if key is not already in dict

>>> dict.get(dicE,'Which')  #或dicE.get('Which')
>>> dict.setdefault(dicE,'Which')
>>> dicE
{'What': 'XXX', 'Who': 'XXX', 'When': 'XXX', 'Which': None}

dict.update(dict2)

Adds dictionary dict2's key-values pairs to dict

>>> dicF = {'Work':'No'}
>>> dicE
{'Num': 1, 'Sch': 'yes'}
>>> dicE.update(dicF)
>>> dicE
{'Num': 1, 'Sch': 'yes', 'Work': 'No'}

dict.values()

Returns list of dictionary dict's values

>>> dicE.values()
[1, 'yes', 'No']

字典dictionary的更多相关文章

  1. C#创建安全的字典(Dictionary)存储结构

    在上面介绍过栈(Stack)的存储结构,接下来介绍另一种存储结构字典(Dictionary). 字典(Dictionary)里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而 ...

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

    一.索引器 索引器类似于属性,不同之处在于它们的get访问器采用参数.要声明类或结构上的索引器,使用this关键字. 示例:   索引器示例代码 /// <summary> /// 存储星 ...

  3. Python 字典(Dictionary)操作详解

    Python 字典(Dictionary)的详细操作方法. Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字 ...

  4. Python 字典(Dictionary) get()方法

    描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 ...

  5. Python字典 (dictionary)

    字典dict,是Python唯一的标准mapping类型,也是内置在Python解释器中的. mapping object把一个可哈希的值(hashable value)映射到一个任意的object上 ...

  6. Python 字典(Dictionary) setdefault()方法

    描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: ...

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

    这里是针对.NET版本过低的排序方式,没怎么用过,记录一下: 一.创建字典Dictionary 对象 假如 Dictionary 中保存的是一个网站页面流量,key 是网页名称,值value对应的是网 ...

  8. Python 字典(Dictionary) has_key()方法

    描述 Python 字典(Dictionary) has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false. 语法 has_key()方法语法:dic ...

  9. 字典 Dictionary

    字典 Dictionary {Key-Value} 1.字典是无序的,没有下标(因为有key,取值直接用key值) Key尽量不要用中文编写,以防止编码不同导致取不出来 2.字典常用方法: 查找: ① ...

  10. [Swift]JSON字符串与字典(Dictionary)、数组(Array)之间的相互转换

    1.JSON字符串与字典(Dictionary)之间的相互转换 import Foundation //JSON字符串转换为字典(Dictionary) func getDictionaryFromJ ...

随机推荐

  1. 优化加载jQuery的方法

    请看下面的一段代码: <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js" ...

  2. Light OJ 1031---Easy Game(区间DP)

    题目链接 http://lightoj.com/volume_showproblem.php?problem=1031 Description You are playing a two player ...

  3. 高性能的分布式服务框架 Dubbo

    我思故我在,提问启迪思考! 1. 什么是Dubbo? 官网:http://dubbo.io/,DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及作为SOA服务治理的 ...

  4. Scalaz(51)- scalaz-stream: 资源使用安全-Resource Safety

    scalaz-stream是一个数据流处理工具库,对资源使用,包括:开启文件.连接网络.连接数据库等这些公共资源使用方面都必须确定使用过程的安全:要保证在作业终止时能进行事后处理程序(finalize ...

  5. ImFire即时通讯系统构建(需求)

    ImFire需求 一期需求(近期) 1.新用户(账号)注册. 2.用户登入登出,支持pc端,移动端同时登录. 3.获取好友列表,包含好友的各种信息,状态. 4.根据用户id或用户名申请添加好友. 5. ...

  6. servletcontext监听器的启动位置以及tomcat和eclipse的目录结构

    情景: 想在应用启动的时候就加载spring容器 在ServletContextListener.contextInitialized()中加载spring容器 ApplicationContext ...

  7. JSON+YAML初步学习+ciscoconfparse

    Git git clone 在github.com右上角点击加号创建新的repository 在Linux或Mac命令行下,找到你想存放这个repository的目录,然后git clone 某个re ...

  8. Date类型 方法

    Date 方法函数 Date.parse():可以获得该日期的毫秒数 var now=Date.parse('May 25,2005')//1085414400000 Date.UTC():也可以获得 ...

  9. Pexels Videos – 可以免费商业使用的短视频

    Pexels 是一个巨大的平台,提供免费的精美照片,很多设计师和博客每天用它来寻找他们的个人和商业项目的照片.现在我们想介绍 Pexels 视频,他是用来帮助你找到免费的视频.所有的 Pexels 视 ...

  10. [GitHub] GitHub使用教程for Eclipse

    1.下载egit插件 打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的.在菜单栏依次打开eclipse→help→install new software→add ...