字典(Dictionary)在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种结构类型通常也被称为映射,或者叫关联数组,也有叫哈希表的。每个key-value之间用“:”隔开,每组用“,”分割,整个字典用“{}”括起来,它的定义如下图所示  

  定义字典时,键在前,值在后,键必须唯一性,值可以不唯一,如果键有相同,值则取最后一个;

  值可以是任何的数据类型,但是键必须是不可变的数据类型(数字、字符串、元组);

  定义的时候,字典是{},列表是[],元组是();

Python中集成了许多关于字典的方法,下面我们来列举一下:

clear()#清空字典里的数据;copy()#拷贝(浅拷贝)一个字典里的数据;

fromkeys()#使用给定的键建立字典,对应的值默认为“None”;

get(key, default=None)#访问字典中对应的键里的值,如不存在该键返回default的值;

items()#获取字典键值对数据,以列表形式返回;

keys()#获取字典键的数据,以列表形式返回;values()#获取字典值的数据,以列表形式返回;

setdefault(key, default=None)#和get方法类似,不同之处在于,如不存在该键,则添加该键到字典中并将值设置为default的值,如果存在该键,且键有值,则返回该键的值。

update(dict2)#把字典dict2的数据(键值对)更新到另一个字典中;

pop(key[,default])      删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()      随机返回并删除字典中的一对键和值。

>>> a={'a':1,'b':2,'c':3}
>>> a
{'a': 1, 'b': 2, 'c': 3}
>>> a['a']=10            #######修改字典a中键为a的值,10
>>> a
{'a': 10, 'b': 2, 'c': 3}

>>> b=a.items()     #######取键值,返回是元组形式
>>> b
dict_items([('a', 1), ('b', 2), ('c', 3)])

>>> a.keys()              ###返回的不是列表也不是字典,是特殊类型。
dict_keys(['a', 'b', 'c'])

>>> b=list(a.keys())      ####把字典a的键以列表的形式赋值给b。
>>> b
['a', 'b', 'c']
>>>

>>> a.values()
dict_values([10, 2, 3])

 print(dic5.pop('age')) #删除字典中指定键值对,并返回该键值对的值
ret=dic5.pop('age')
print(ret)
print(dic5) a = dic5.popitem() #随机删除某组键值对,并以元组方式返回值
print(a, dic5)
dic6=dict.fromkeys(['host1','host2','host3'],'test')
print(dic6)#
###返回{'host3': 'test', 'host1': 'test', 'host2': 'test'} 遍历
# for i in dic5:
# print(i,dic5[i])
# for i,v in dic5.items():
# print(i,v)

>>> a
{'a': 1, 'b': 2, 'c': 3}
>>> b
{'a': 1, 'b': 2}
>>> b['b']=22
>>> b
{'a': 1, 'b': 22}
>>> a.update(b)             #####update更新,把字典dict2的键/值对更新到dict里
>>> a
{'a': 1, 'b': 22, 'c': 3}
>>>

字符串连接

>>> a='abc'
>>> b='123'
>>> c='@@@'.join([a,b])
>>> c
'abc@@@123'
>>>

												

第六天,字典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. NOIp2005 过河【dp+离散化】By cellur925

    题目传送门 $30pts$ 状态和转移都比较好想:设$f[i]$表示跳到$i$位置,踩到的最小石子数.转移方程也很明了,为$f[i]$=$min${$f[i-j]$),,这个位置有石子时答案再加1,$ ...

  2. LuoguP2700逐个击破【并查集/生成树/正难则反】By cellur925

    题目传送门 题目大意:给你一棵树,求把其中k个点相互隔离(不连通)所需要的边权代价. 这题我开始是想要求出把k个点联通的最小代价的,但后来发现还是实现起来比较困难,题解里貌似也没有这种做法,于是就鸽了 ...

  3. C#递归拷贝文件夹下文件以及文件夹

    public bool CopyOldLabFilesToNewLab(string sourcePath, string savePath) { if (!Directory.Exists(save ...

  4. the little schemer 笔记(0)

    the little schemer 笔记 Z.X.L 2012年08月13日 五项规则 car的规则car只对非空列表有定义. cdr的规则cdr只对非空列表有定义.任何非空列表的cdr是另外一个列 ...

  5. 用CSS绘制三角形

    其实用HTML CSS绘制三角行 是非常简单的 ,我在网上看了不少人写的博客,里面写的好复杂样子,反正我是看的云里雾里的,说实话是挺简单的. 首先提出一段代码: <!DOCTYPE html&g ...

  6. 双拓扑排序 HDOJ 5098 Smart Software Installer

    题目传送门 /* 双拓扑排序:抄的,以后来补 详细解释:http://blog.csdn.net/u012774187/article/details/40736995 */ #include < ...

  7. Vue不兼容IE8原因以及Object.defineProperty详解

    Vue不兼容IE8原因以及Object.defineProperty详解 原因概述: Vue.js使用了IE8不能模拟的ECMAScript5特性. Vue.js支持所有兼容ES5的浏览器. Vue将 ...

  8. linux常用的shell命令

    1.shell介绍 shell(外壳)是linux系统的最外层,简单的说,它就是用户和操作系统之间的一个命令解释器. 2.shell命名的使用 ls :查看当前目录的信息,list .        ...

  9. 接口测试01 - HTTP协议报文结构及示例

    HTTP基本架构 用一张简单的流程图来展示HTTP协议的基本架构,以便先有个基础的了解. 1)Web Client可以是浏览器.搜索引擎等等一切基于HTTP协议发起http请求的工具. 2)Web S ...

  10. Spark MLlib编程API入门系列之特征提取之主成分分析(PCA)

    不多说,直接上干货! 主成分分析(Principal Component Analysis,PCA), 将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法. 参考 http://blo ...