python学习笔记七——字典
4.3 字典结构
字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用。
4.3.1 字典的创建
字典由一系列的“键-值”(key-value)对组成,“键-值”对之间用“逗号”隔开,并且被包含在一堆花括号中。字典与java语言中的HashMap类作用类似,都是采用“键-值”对映射的方式存储数据。
字典的创建格式如下:
dictionary={key1:value1, key2:value2,...}
其中,key1、key2等表示字典的key值,value1、value2等表示字典的value值。
如果需要创建一个空的字典,只需要一对花括号即可,代码如下:
dictionary = {}
字典的创建和访问。
dict={"a":"apple","b":"banana","g":"grape","o":"orange"}
print(dict)
print(dict["a"]) #打印建a对应的值
注意:字典的“键”是区分大小写的。例如,dict["a"]与dict["A"]分别指向不同的值,应区别对待。
创建字典时,也可以使用数字作为索引。
dict={1:"apple",2:"banana",3:"grape",4:"orange"}
print(dict)
print(dict[2]) #打印建2对应的值,不用双引号
[root@Dannyserver danny]# python a.py
{: 'apple', : 'banana', : 'grape', : 'orange'}
banana
print()的使用非常灵活,也可以在print()中使用字典。下面示例字典在print()中的使用。
print("%s,%(a)s,%(b)s" %{"a":"apple", "b":"banana"})
[root@Dannyserver danny]# python a.py
{'a': 'apple', 'b': 'banana'},apple,banana
解释:其中隐式的创建了字典{“a”:"apple","b":"banana"}。这个字典用来定制print()中的参数列表。“%s”输出这个字典的内容,"%(a)s"获取字典中对应的key值“a”的value值,“%(b)s”获取字典中对应key值"b"的value值。
4.3.2 字典的访问
字典的访问与元组、列表有所不同,元组和列表是通过数字索引来获取对应的值,而字典是通过key值获取相应的value值。访问字典格式如下:
value = dict[key]
字典的添加、删除和修改非常简单,添加或修改操作只需要编写一条赋值语句,例如:
dict["x"] = "value"
如果索引x不在字典dict的key列表中,字典dict将添加一条新的映射(x:value);如果索引x在字典dict的key列表中,字典dict将直接修改索引x对应的value值。
字典与列表不同,字典并没有remove()操作。字典元素的删除可以调用del()实现,del()属于内建函数,直接调用即可。列表可以调用pop()弹出列表中的一个元素,字典也有一个pop(),该方法的声明和作用与列表的pop()有些不同。pop()的声明如下所示。
D.pop(k[,d]) -> v
pop()必须指定参数才能删除对应的值。其中,参数k表示字典的索引,如果字典D中存在索引k,返回值v等于D[k];如果字典D中没有找到索引k,返回值为d。
如果需要清除字典中所有的内容,可以调用字典的clear()。示例如下:
#字典的添加、删除、修改操作
dict={"a":"apple","b":"banana","g":"grape","o":"orange"}
dict["w"]="watermelon" #添加字典元素
del(dict["a"]) #删除字典中键为a的元素
dict["g"]="grapefruit" #修改字典中键为g的值
print(dict.pop("b")) #弹出字典中键为b的元素
print(dict)
dict.clear() #清除字典中所有元素
print(dict)
[root@Dannyserver danny]# python a.py
banana
{'g': 'grapefruit', 'o': 'orange', 'w': 'watermelon'}
{}
由于字典是无序的,因此字典中没有append()、remove()等方法。如果需要向字典插入新的元素,可以调用setdefault()。
字典的遍历有多种方式,最直接的方式是通过"for...in..." 语句完成遍历的任务。例:
dict={1:"apple",2:"banana",3:"grape",4:"orange"}
for k in dict:
print("dict[%s]" %k,dict[k])
[root@Dannyserver danny]# python a.py
dict[] apple
dict[] banana
dict[] grape
dict[] orange
注意:语句循环访问字典dict,变量k获取的是字典dict的key值,并没有直接获取value值。因此打印输出时,通过dict[k]来获取value值。
此外,还可以使用字典的items()实现字典的遍历操作,items()返回一个由若干元组组成的列表。例:
dict={"a":"apple","b":"banana","c":"grape","d":"orange"}
print(dict.items())
[root@Dannyserver danny]# python a.py
dict_items([('a', 'apple'), ('b', 'banana'), ('c', 'grape'), ('d', 'orange')])
可见,items()把字典中没对key和value组成一个元组,并把这些元组存放在列表中返回。下面将使用字典item()实现字典的遍历。
dict={"a":"apple","b":"banana","c":"grape","d":"orange"}
for(k,v) in dict.items(): #变量k和v分别与字典dict中的key和cvalue值对应
print("dict[%s]" %k,v)
[root@Dannyserver danny]# python a.py
dict[a] apple
dict[b] banana
dict[c] grape
dict[d] orange
除了能采用字符串作为字典的value值,元组、列表甚至字典都可以作为字典的value值。使用元组、列表或字典作为value值创建字典,称为混合型字典。格式如下:
dict={"key1":(tuple), "key2":[list], "key3":[dictionary] ...}
示例:
dict={"a":("apple",),"g":["grape","grapefruit"],"bo":{"b":"banana","o":"orange"}}
print(dict["a"])
print(dict["a"][0])
print(dict["g"])
print(dict["g"][1])
print(dict["bo"])
print(dict["bo"]["b"])
[root@Dannyserver danny]# python a.py
('apple',)
apple
['grape', 'grapefruit']
grapefruit
{'b': 'banana', 'o': 'orange'}
banana
python学习笔记七——字典的更多相关文章
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- Python学习笔记七-错误和异常
程序员总是和各种错误打交道,学习如何识别并正确的处理程序错误是很有必要的. 7.1错误和异常 1.错误 从软件方面来看,错误分为语法错误和逻辑错误两种.这两种错误都将导致程序无法正常进行下去,当Pyt ...
- Python学习笔记之字典
一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...
- 【Python学习笔记】字典操作
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...
- Python学习笔记四--字典与集合
字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...
- Python学习笔记七
面向对象编程 面向对象的特性如下: 类:具有相同属性和方法的一类事物,成为类. 对象:类的实例化后的结果,一个类可以实例化多个对象,每个对象也可以不同的属性. 封装:在类中对数据的赋值,类里面包含着类 ...
- python学习笔记八——字典的方法
4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...
- python学习笔记(字典乱码)
博主总结下 python中字典中包含中文时,使用过程中出现乱码 json.dumps(params, encoding="UTF-8", ensure_ascii=False) p ...
- Python学习笔记3(字典)
创建字典 dict函数 字典的格式化字符串 字典方法 clear copy fromkeys 序列是一个按照一定顺序将值进行组织的数据结构形式,可以通过索引对其进行征引.另外还有一种数据结构是通过名字 ...
随机推荐
- enq: FB - contention
Troubleshooting 'enq: FB - contention' Format Block Enqueues. (Doc ID 1379986.1) In this DocumentPur ...
- leetcode 235. Lowest Common Ancestor of a Binary Search Tree 236. Lowest Common Ancestor of a Binary Tree
https://www.cnblogs.com/grandyang/p/4641968.html http://www.cnblogs.com/grandyang/p/4640572.html 利用二 ...
- PySpider HTTP 599: SSL certificate problem错误的解决方法
在用 PySpider 爬取 https 开头的网站的时候遇到了 HTTP 599: SSL certificate problem: self signed certificate in certi ...
- [转]Qt状态栏(statusbar)的使用
状态栏显示的信息分3种 1. 一般信息,用QLabel 代表 2. 永久信息,文本会一直显示在状态栏的最右边. 3. 临时信息,指定信息现实的时间.时间到即信息消失 QLabel *locationL ...
- ASP.NET 加密解密
1.MD5 2.DES 一 MD5 介绍:MD5是不可逆解密方式,比如对密码的加密,为了保密,让密码不能解密 public static string MD5Encrypt(string str) { ...
- 数据库连接不关闭造成的问题以及RowSet的使用
这几天给项目做性能压力测试,发现一个方法压力200之后就会把整个系统弄停掉.仔细检查发现是开发人员调用数据库的写法有问题.用的是spring的jdbcTemplate,在使用回调的时候,在回调里又做了 ...
- 关于linux系统如何实现fork的研究(一)
引言 fork函数是用于在linux系统中创建进程所使用,而最近看了看一个fork()调用是怎么从应用到glibc,最后到内核中实现的,这片文章就聊聊最近对这方面研究的收获吧.我们主要聊聊从g ...
- TCP/IP协议--TCP协议概括和TCP连接的建立和终止
TCP提供一种面向连接的.可靠的字节流服务.面向连接指,发送和接收方在交换数据前必须建立一个TCP连接.顺便说下,一个TCP连接只有两方,因此广播和多播是不能应用于TCP的.字节流指,两个应用程序通过 ...
- Luogu1084 NOIP2012D2T3 疫情控制 二分答案、搜索、贪心、倍增
题目传送门 题意太长就不给了 发现答案具有单调性(额外的时间不会对答案造成影响),故考虑二分答案. 贪心地想,在二分了一个时间之后,军队尽量往上走更好.所以我们预处理倍增数组,在二分时间之后通过倍增看 ...
- RabbmitMQ-组成及简单使用
什么是MQ? MQ全程Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ是消费者-生产者模型的典型代表.一端往消息队列中不断写消息而另一端则可以读取队列中的消息. R ...