字典,即我们可以通过索引来查找更详细的内容。每个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. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  2. linux下安装rzsz

    1.登陆linux,下载rzsz安装包 wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz 2.tar zxvf rzsz-3.48.t ...

  3. Foreach原理

    本质:实现了一个IEnumerable接口, 01.为什么数组和集合可以使用foreach遍历? 解析:因为数组和集合都实现了IEnumerable接口,该接口中只有一个方法,GetEnumerato ...

  4. .Net加密保护工具分析介绍

    本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨. remotesoft protector.maxtocode..Net Reactor.Cliprotector.themid ...

  5. JS中数组去除重复的方法

    function unique(arr) { var result = [], hash = []; for (var i = 0, elem; (elem = arr[i]) != null; i+ ...

  6. jQuery原型方法.pushStack源码分析

    这次分析的方法跟前面不同,虽然pushStack也是原型方法之一,但是我们几乎从不用在页面调用,在参考手册里面也没有这个方法的使用说明,但是这个方法还是非常重要的,在使用很多jQuery的其他方式都会 ...

  7. 创建SAP GUI快捷方式保存密码

    1.在注册表中创建GUI 快捷方式的子键 a.首先运行  微软标识键+R    b.窗口中输入sapshcut,如果有窗口跳出点击“确定” 2.维护子键下的键值 a.再次运行  微软标识键+R    ...

  8. SharePoint Error - The current user is not an SharePoint Server farm administrator

    错误截图 错误日志 位置:C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\LOGS 主要错误 The c ...

  9. 配置redis外网可访问,并只允许指定的ip可访问redis

    开启redis 允许外网IP 访问 在 Linux 中安装了redis 服务,当在客户端通过远程连接的方式连接时,报could not connect错误. 错误的原因很简单,就是没有连接上redis ...

  10. WIFI热点

    1.wifi热点是指把手机的接收GPRS.3G或4G信号转化为wifi信号再发出去,这样手机就成了一个WIFI热点. 2.手机必须有无线AP功能,才能当做热点.有些系统自带建热点这个功能比如IOS(比 ...