《Python编程从入门到实践》_第六章_字典
一个简单的字典
#用户信息
user = {'name':'Frank','age':'','city':'shanghai'}
print(user['name'])
print(user['age'])
print(user['city'])
#运行结果
Frank
23
shanghai
字典的结构
在python里面,字典就是一系列的 键-值,每个值都与一个值是一一对应的,键可以是数字、字符串、列表和字典。实际上,可以将任何python对象用作字典的值。
使用字典
#用户信息
user = {'name':'Frank','age':'','city':'shanghai'}
print(user)
user['hobby']='reading'
print(user)
#运行结果
{'name': 'Frank', 'age': '', 'city': 'shanghai'}
{'name': 'Frank', 'age': '', 'city': 'shanghai', 'hobby': 'reading'}
添加键-值对
字典是一种动态结构,可以随时添加,可依次指定字典名、用方括号括起来的键和对应的值
#用户信息
user = {'name':'Frank','age':'','city':'shanghai'}
print(user)
user['hobby']='reading'
print(user)
#运行结果
{'name': 'Frank', 'age': '', 'city': 'shanghai'}
{'name': 'Frank', 'age': '', 'city': 'shanghai', 'hobby': 'reading'}
#用户信息
user = {'name':'Frank','age':'','city':'shanghai'}
print(user)
user['city']='nanjing'
print(user)
#运行结果
{'name': 'Frank', 'age': '', 'city': 'shanghai'}
{'name': 'Frank', 'age': '', 'city': 'nanjing'}
删除键-值对
删除的键值对永远消失了
#用户信息
user = {'name':'Frank','age':'','city':'shanghai'}
print(user)
del user['city']
print(user)
#运行结果
{'name': 'Frank', 'age': '', 'city': 'shanghai'}
{'name': 'Frank', 'age': ''}
常用的格式
#最喜欢的语言
favorite_languages = {
'Jen':'python',
'Frank':'c++',
'Tom':'JAVA',
}
print(favorite_languages)
#运行结果
{'Jen': 'python', 'Frank': 'c++', 'Tom': 'JAVA'}
最后一个键值对后面可以加上一个逗号,也可以不加
遍历字典
要是for循环遍历字典,可以使用两个变量,用于存储键-值。方法items()返回一个键-值队列表。
#最喜欢的语言
favorite_languages = {
'Jen':'python',
'Frank':'c++',
'Tom':'JAVA',
'Sabar':'python',
'Bob':'ruby',
}
for k,v in favorite_languages.items():
print('\nkey: ',k)
print('value: ',v)
#运行结果 key: Jen
value: python key: Frank
value: c++ key: Tom
value: JAVA key: Sabar
value: python key: Bob
value: ruby
如果只需要遍历键呢?
可以使用方法keys(),遍历字典时,默认遍历所有的键,因此如果不加keys(),并不会影响输出,加keys()可以便于代码的阅读和理解
#最喜欢的语言
favorite_languages = {
'Jen':'python',
'Frank':'c++',
'Tom':'JAVA',
'Sabar':'python',
'Bob':'ruby',
}
for name in favorite_languages.keys():
print('\nname: ',name)
#运行结果
name: Jen
name: Frank
name: Tom
name: Sabar
name: Bob
怎么对键排排队?
这里我们就学到之前用的函数sorted(),临时的排队。
#最喜欢的语言
favorite_languages = {
'Jen':'python',
'Frank':'c++',
'Tom':'JAVA',
'Sabar':'python',
'Bob':'ruby',
}
for name in sorted(favorite_languages.keys()):
print('\nname: ',name)
#运行结果
name: Bob
name: Frank
name: Jen
name: Sabar
name: Tom
遍历字典中所有值
如果你只对字典中的值感兴趣,可以是用方法value()
#最喜欢的语言
favorite_languages = {
'Jen':'python',
'Frank':'c++',
'Tom':'JAVA',
'Sabar':'python',
'Bob':'ruby',
}
for value in favorite_languages.values():
print(value)
#运行结果
python
c++
JAVA
python
ruby
#最喜欢的语言
favorite_languages = {
'Jen':'python',
'Frank':'c++',
'Tom':'JAVA',
'Sabar':'python',
'Bob':'ruby',
}
for value in set(favorite_languages.values()):
print(value)
#运行结果
python
JAVA
c++
ruby
嵌套
#创建10个绿色的外星人
aliens = [] #创建列表用来装外星人
for alien_number in range(10):
new_alien = {'color':'green','speed':'low','points':5}
aliens.append(new_alien)
for alien in aliens[:5]: #显示前5个外星人属性
print(alien)
print("....")
print(aliens[0]['color']) #显示第一个外星人的颜色
#运行结果
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
....
green
在字典中存储列表
#最喜欢的语言
favorite_languages = {
'jen':['python','c++','Java'],
'frank':['python','golang'],
'tom':['c','PHP','python'],
}
for name,languages in favorite_languages.items(): #这里我们使用了languages来存列表的值
print("\n" + name.title() + "'s favorite languages are:")
for language in languages: #使用for循环遍历语言列表
print("\t" + language.title())
#运行结果
Jen's favorite languages are:
Python
C++
Java
Frank's favorite languages are:
Python
Golang
Tom's favorite languages are:
C
Php
Python
在字典里面存储字典
#信息字典
user = {
'aeinstein':{
'first':'albert',
'last':'einstein',
'location':'princeton',
},
'mcurie':{
'first':'marie',
'last':'curie',
'location':'paris',
},
}
for username,user_info in user.items():
print("\nUsername:",username)
fullname = user_info['first'] + ' ' +user_info['last']
location = user_info['location']
print("\tFull name:" + fullname.title())
print("\tLocation:" + location.title())
#运行结果
Username: aeinstein
Full name:Albert Einstein
Location:Princeton
Username: mcurie
Full name:Marie Curie
Location:Paris
《Python编程从入门到实践》_第六章_字典的更多相关文章
- 《Python编程从入门到实践》第三章_列表简介
什么是列表呢? 官方说明就是由一些列按特点顺序排列的元素组成.其实可以看出很多个字符串的有序组合吧,里面的内容可以随时的删除,增加,修改. 下面这个就是一个列表,python打印列表的时候会将中括号和 ...
- 《python编程从入门到实践》第六章笔记
1.字典 字典:一系列键-值对,每一个键都与每一个值相关联.与键相关联的值可以是数字.字符串.列表和字典. 最简单的字典只有一个键值对. eg: alien = {'color':'green','p ...
- 《python编程从入门到实践》第七章笔记
用户输入和while循环 1.函数input():让程序停止运行,等待用户输入一些文本.接受一个参数,既即要向用户显示的提示或说明. 2.将数值输入用于计算和比较前,务必将其转换为数值表示. 3.fo ...
- 《Python编程从入门到实践》_第十章_文件和异常
读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕 ...
- 《python编程从入门到实践》读书实践笔记(一)
本文是<python编程从入门到实践>读书实践笔记1~10章的内容,主要包含安装.基础类型.函数.类.文件读写及异常的内容. 1 起步 1.1 搭建环境 1.1.1 Python 版本选择 ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
随机推荐
- JDBC访问数据库
一.准备条件 外界条件 在数据库中首先创建表空间 在创建的表中添加数据 代码部分 导入数据库的驱动包(jar) 加载数据库驱动 获取数据库连接 编写sql语句 利用prepareStatement进行 ...
- 通过向日葵(或者TeamViewer)创建VPN
1.向日葵软件的安装比较简单.主要要开启VPN服务. 2.向日葵管理界面,添加机器. 3.组网. 4.作为VPN服务端机器(内网机器)安装传入的连接 5.外网客户端机器 一.登录向日葵客户端 一般使用 ...
- Docker 组件如何协作?- 每天5分钟玩转容器技术(8)
还记得我们运行的第一个容器吗?现在通过它来体会一下 Docker 各个组件是如何协作的. 容器启动过程如下: Docker 客户端执行 docker run 命令. Docker daemon 发现本 ...
- ubuntu实用命令--软件管理
近期重新拿起linux的书看了下,整理了一下linux的命令. ubuntu预装了APT和dpkg ,“APT”是 “Advanced Package Tool”的简写,“dpkg ”是“Debian ...
- 全易通人事考勤工资验厂管理系统软件创建连接SQL2000数据库的操作方法和说明
全易通人事考勤工资验厂管理系统软件创建连接SQL2000数据库的操作方法和说明.全易通人事考勤工资验厂管理系统软件,有2种数据库,一个是ACCESS,另一个是SQL.不过由于ACCESS数据库比较小, ...
- vue.js2.0 自定义组件初体验
理解 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在有些情况 ...
- JDK安装以及安装过程中出现的问题(日志二)
上一篇:初识hadoop-历史及其家族(日志一) 我安装的这个版本的Ubuntu,已经在java包中存在了,所以当使用java -version的时候,会出现下载包的提示,使用apt-get命令之后, ...
- poj3067 Japan 树状数组求逆序对
题目链接:http://poj.org/problem?id=3067 题目就是让我们求连线后交点的个数 很容易想到将左端点从小到大排序,如果左端点相同则右端点从小到大排序 那么答案即为逆序对的个数 ...
- Java学习笔记--链表
心在山东身在吴,飘蓬江海漫嗟吁. 他时若遂凌云志, 敢笑黄巢不丈夫. --水浒传 先上源代码,LinkedList类: private static class Node<E> { E i ...
- 【转】MyISAM和InnoDB 区别
InnoDB和MyISAM是MySQL最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调 ...