Python学习:字典(dictionary)

dictionary是python内置数据结构中最灵活的。列表list是有序的对象集合,而dictionary是无序的集合。最主要的差别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

可变长,异构,任意嵌套。字典可以在原处修改,但不支持用于字符串和列表中的序列操作。因为字典是无序的集合,所以根据固定顺序进行操作是行不通的。

1、dictionary的构造:

D={}        #空字典
D = {‘spam‘:2, ‘ham‘:1, ‘eggs‘:3}    #三项目字典
D = {‘food‘:{‘spam‘:2, ‘ham‘:1, ‘eggs‘:3}    #嵌套
D = dict.fromkeys([‘a‘,‘b‘])        #其他构造技术{‘a‘: None, ‘b‘: None}
D = dict(name=‘Bob‘, age=42)        #{‘age‘: 20, ‘name‘: ‘Bob‘}

除以上几种构造方法外,还有一种key和value对应技术:

>>>keyslist=[‘spam‘, ‘ham‘, ‘eggs‘]
>>>valslist=[2,1,3]
>>>D=dict(zip(keyslist, valslist))
{‘eggs‘: 3, ‘ham‘: 1, ‘spam‘: 2}

和list不同,dictionary以key进行索引运算:

>>>D[‘eggs‘]
>>>D[‘food‘][‘ham‘]
>>>‘eggs‘ in D

以下三种常见操作返回的都是list对象:

>>>D.keys()        #[‘eggs‘, ‘ham‘, ‘spam‘]
>>>D.values()      #[3, 1, 2]
>>>D.items()       #[(‘eggs‘, 3), (‘ham‘, 1), (‘spam‘, 2)]

值得注意的是以上都是python2.7中的语法,Python3.0中,必须将其放到list调用中,python3.0中的keys()返回一个迭代器:

>>>list(D.keys()) 
>>>list(D.values())
>>>list(D.items())

合并操作如下:

>>>D={‘eggs‘: 3, ‘ham‘: 1, ‘spam‘: 2}
>>>D2={‘turkey‘: 6, ‘ham‘: 2}
>>>D.update(D2)    #合并
>>>print(D)
{‘turkey‘: 6, ‘eggs‘: 3, ‘ham‘: 2, ‘spam‘: 2}

从上面操作可以看出,合并过程中相同key的项会合并,若key相同但value不同,会更新。

删除操作有两种方法。pop()删除这个键对应的值。若删除不存在的键,会报错:

>>>D.pop(‘eggs‘)
3
>>>del D[‘eggs‘]

其他字典方法:

读取不存在的键往往会出错,用get方法可以避免出错,仅返回None

>>>D.get(‘spam‘)        #A key that is there
2
>>>print(D.get(‘toast‘))        #A key that is missing
None
>>>D.get(‘toast‘, 88)           #if a key is missing, 88 is default
88

字典的大小比较在Python3.0中不再有效:

>>>D1 > D2        #Python2.6中的字典大小比较
>>>sorted(D1.items()) > sorted(D2.items())    #python3.0

习题:

1、两种方式创建内含5个0的列表

>>>[0,0,0,0,0]
>>>[0]*5

2、两种方式来创建一个字典,有两个键‘a‘,‘b‘,而每个键相关联的值都是0.

>>>D={‘a‘:0,‘b‘:0}
>>>L1=[‘a‘,‘b‘]
>>>D = dict.fromkeys(L1,0)
>>>dict(a=0,b=0)

3、列举四种在原处修改字典对象的运算

>>>D.pop(key)
>>>D[‘spam‘]=10
>>>D.update(D2)
>>>del D(key)
时间: 2024-10-13 23:01:06

Python学习:字典(dictionary)的相关文章

python学习     字典

Python学习   字典 1)字典的了解 1.    字典是python中唯一的映射类型(哈希表) 2.    字典对象时可变的,但是字典的键必须使用不可变对象,并且在一个字典中可以使用不同的类型的键值. 3.    keys()或者是values()返回列表中或者值列表 4.    items()返回包含键值对应的元祖 1)  定义字典的方法和使用方法 1.字典名={key:values,key1:values1} 2.取值时: 字典名[key](取出与key相对应的values) 3.可以

python学习-字典1

第一次写技术博客,也是刚刚申请成功,所以要先感谢博客园的相关工作人员.开发做了多年,直到今年才开始学习python,习惯了C.C++的数据格式,所以一开始就被python数据类型中的字典所吸引.基础的知识有很多同仁都写过了,我只是通过我学习中的一道作业题来说明一下. 题目:三级菜单 要求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 返回上一级菜单和顶部菜单 4. 菜单数据保存在文件中" 实现代码: #准备一个三级菜单 menu_list = {&

python中字典dictionary详解及基本使用

1.dictionary是Python中除了list以外最灵活的数据类型 2.字典同样可以存储多个数据 3.通常用来存储描述某个物体的相关特征 4.和列表的区别 列表是有序的 字典是无须的 5.字典用{}来定义 6.字典用键值对存储数据,键值对之间用英文逗号分隔 键 key是索引 值 vaule是数据 键和值之间使用英文冒号:分隔 键必须是唯一的 值可以是任意数据类型,但是值只能是字符串.数字或元组 # 字典是一个无需的数据集合,print输出字典时通常输出的顺序和定义的顺序是不一致的 xiao

Python学习字典.基础三

元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组中要定义的元组中只有一个元素需要再元素后面加逗号,用来消除数学歧义.例 t=(1,) 字典 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中. 键必须是唯一的,但值则不必(只可以取任何数据类型,但键必须不可变) 例子: #coding=utf-8 #!/usr/bin/python student={1:'ja',2:'qw'

Python的字典dictionary

创建: dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; 删除: del dict['Name']; # 删除键是'Name'的条目 dict.clear(); # 清空词典所有条目 del dict ; # 删除词典 字典键的特性 字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行. 两个重要的点需要记住: 1)不允许同一个键出现两次.创建时如果同一个键被赋值两次,后一个值会被记住 2)键必须不可

Python学习—字典

Python中的图--字典 字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值对key-value对用冒号:分割,每个对之间用逗号,分割,整个字典包括在花括号{}中,键必须是唯一的,但值则不必.值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组,列表集合就不可以. 1.创建字典 变量名 = {字典元素} >>> dict = {'AA':'001','BB':'002','CCC':3,4:4} >>> dict {'AA': '001', 'B

python学习-字典的增删改查

1 dic1 = {'name':'paoche', 2 'age':19, 3 'active':['beijing','hebei'], 4 'id':{'wangyi':'skmdod008b', 5 'sina':'skmdod00bc' 6 } 7 } 一.字典的增 方法1:直接新增键值对,若无此键则新增键值对,有此键则修改值 1 dic1['high'] = 180 #没有键值对,则追加 2 dic1['age'] = 30 #有键值,则修改 3 print(dic1) 4 "&qu

Python学习心得(二) 字典Dictionary

前言 . 在Python中字典就是一系列的键值对,一种可变容器,可以存储任意对象,也被称作关联数组或哈希表. 1.基本语法   用一对花括号{}中的一系列键值对表示,键与值之间用冒号分隔,键值对之间用逗号分隔,例如: blogger = {'name': 'binguo','age': 27} 2.访问字典中的值 print 'name:'+ blogger['name'] +' age:' +str(blogger['age']) 3.添加键值对 blogger['gender'] = 'ma

Python学习之旅—Day06(字符串+字典+列表重点方法)

前言: 本篇博客主要针对字符串,字典和列表中的一些容易忽略的重点方法进行整理,以期进一步夯实大家的基础. [001]字符串方法--isspace()方法 isspace()方法主要检测字符串是否只由空格组成.我们通过如下的实际例子来查看该方法: str1 = " " print(str1.isspace()) str2 = "cisco 123" print(str2.isspace()) str3 = " #" print(str2.isspa

python学习------dictionary和set

一.dictionary 1.字典的形式:a={‘key’:value,‘key1’:value,................} 2.字典的的key不能重复,是一个不可变对象 3.字典的的查找和添加的速度快,但是占的存储空间多 5.当查找的内容中,字典中不存在关键字时,则会发生错误有两种判定方法: a.‘key’ in a b.a.get('key')  如果key不存在,则会返回None,或者用a.get('key', -1),如果可以不存在则会返回-1 6.操作函数: a.pop(‘ke