萌新向Python数据分析及数据挖掘 第一章 Python基础 第六节 字典

第一章 Python基础

第六节 字典


字典类似于通过联系人名字查找联系人电话号码的电话本,即把键(名字)和值(电话号码)联系在一起。注意,键必须是唯一的。并且python只能使用不可变的对象(比如字符串)来作为字典的键,但是可以将不可变或可变的对象作为字典的值。举一个简单的字典例子。

如果说列表元组是一页笔记的话,字典就是一沓笔记,每张都有一个标签,没有顺序

alien = {'color': 'green', 'points': 5}这里有一沓笔记叫做alien(外星人),一张标签是color(颜色) ,里面写着green,另一张标签是points(点数)里面写着5

键值对在字典中的标记为:d = {key1 : value1, key2 : value2 }。注意键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。字典中的键/值对是没有顺序的。如果想要一个指定的顺序,那么在使用前自行排序。

使用字典

 

访问字典中的值 

依次指定字典名和放在方括号内的键,如下所示:

 

代码:

1 alien_0 = {'color': 'green', 'points': 5} #这里有一沓笔记叫做alien_0(外星人_0),一张标签是color(颜色)
2 #,里面写着green,另一张标签是points(点数)里面写着5
3 print(alien_0['color'])#抽出color标签的一张,打印里面的内容
View Code

 

 

创建字典并修改字典中的值 

 

创建空字典时使用一对空的花括号定义一个字典,再分行添加各个键值对。 
修改字典的值可以指定字典名、键以及新的赋值。

代码:

1 alien = {}#创建一沓空的笔记叫做alien
2 alien['x_position'] = 0 #在alien中空白纸中写上标签'x_position'(x轴位置),在笔记里面写上0
3 alien['y_position'] = 25#在alien中空白纸中写上标签'y_position'(x轴位置),在笔记里面写上25
4 print(alien) #打印这一沓笔记
5 alien['x_position'] = 25#把标签为'x_position'(x轴位置)的内容改成25
6 print(alien)#打印这一沓笔记
View Code

 

 

添加/删除键值对 

 

字典是一种动态结构。 
添加键值对时,依次指定字典名、方括号和键、所赋的值。 
删除键值对时,可使用del语句,指定字典名和要删除的键。

 

 代码:

1 alien = {'color': 'green', 'points': 5} #这里有一沓笔记叫做alien_0(外星人_0),一张标签是color(颜色) ,里面写着green,另一张标签是points(点数)里面写着5
2 print(alien)#打印这一沓笔记
3 alien['x_position'] = 0#在alien中空白纸中写上标签'x_position'(x轴位置),在笔记里面写上0
4 alien['y_position'] = 25#在alien中空白纸中写上标签'y_position'(x轴位置),在笔记里面写上25
5 print(alien)#打印这一沓笔记
6 del alien['color'] #扔掉标签为“color”的一张
7 print(alien)#打印这一沓笔记
View Code

 


遍历字典

 

遍历所有的键值对

代码:

1 user = {
2       'username': 'efermi',#前面有四个空格的缩进,下同
3       'first': 'enrico',
4       'last': 'fermi',
5       } #这里有一沓笔记,三张纸有字
6 for key, value in user.items(): #把笔记一张一张纸抽出来(包括标签和内容)
7       print("\nKey: " + key)#打印标签
8       print("Value: " + value)#打印内容
View Code

 

 


由上可知,在字典的遍历中,可以声明两个变量分别存储键值对中的键和值。字典的方法item()返回一个键值对列表。注意,在遍历字典的时候,键值对的返回顺序与存储顺序不同。python只关系键和值之间的对应关系。 
遍历字典中的所有键/值 
使用方法keys()可以遍历字典中的所有键。或者不使用方法,默认遍历字典中的键。 
使用方法values()可以遍历字典中的所有值。返回一个值列表。

 

代码:

 1 favorite_languages = {
 2 
 3     'jen': 'python',
 4 
 5     'sarah': 'c',
 6 
 7     'edward': 'ruby',
 8 
 9     'phil': 'python',
10 
11     }# 建立一个四张纸的笔记(字典)
12 
13 for name in favorite_languages.keys():
14 
15     print(name.title())#把字典的标签一个一个拉出来打印首字母大写形式
16 
17 for language in favorite_languages.values():
18 
19     print(language.title())#把字典里每张笔记内容一个一个拉出来打印首字母大写形式
View Code

 

或者不使用方法,默认遍历字典中的键。即for name in favorite_languages.keys():效果等同for name in favorite_languages:。 
若需按顺序遍历,只需使用sorted()。

 

嵌套

将一系列字典存储在列表中,或者将列表作为值存储在字典中,称为嵌套。 
字典列表 
将一系列字典存储在列表中。

 

运行结果:
{'color': 'green', 'points': 5}
{'color': 'yellow', 'points': 10}
{'color': 'red', 'points': 15}

 

列表字典 


将字典存储在列表中。就相当于 在有标签的笔记本的一页上贴便签

代码:

1 lili = {
2     'name': 'lili',
3     'phonenum': ['123', '456'],
4     } #建立一个lili的字典,里面又两对键值对
5 print("lili's name is " + lili['name'] + " and her phonenum is ") 
6 #按要求提取字典内的标签'name'中的内容进行打印
7 for num in lili['phonenum']:#把pehonenum键中的列表里面的内容进行逐个打印
8     print("\t" + num)
View Code

 

 

字典中嵌套字典 

 


字典中嵌套字典 就相当于 在有标签的笔记本的一页上附上另外一沓笔记

存储网站用户信息可以在字典中嵌套字典,例如:

 1 users = {
 2     'aeinstein': {
 3         'first': 'albert',
 4         'last': 'einstein',
 5         'location': 'princeton',
 6         },
 7     'mcurie': {
 8         'first': 'marie',
 9         'last': 'curie',
10         'location': 'paris',
11         },
12     } # 这里的user里面,有两沓笔记,标签分别为:'aeinstein'和'mcurie',里面的内容都是一个标签为 first、last、
13      #;location的一叠笔记,内容是这两位科学家的信息
14 for username, user_info in users.items():
15     print("\nUsername: " + username)#打印users的标签名
16     full_name = user_info['first'] + " " + user_info['last']
17     # 用标签内容里面的字典中的first标签和last标签打印全名
18     location = user_info['location']
19     #用标签内容里面的字典中的location标签打印地址
20     print("\tFull name: " + full_name.title())
21     print("\tLocation: " + location.title())
View Code

 

转载于:https://www.cnblogs.com/romannista/p/10222693.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值