《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()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
随机推荐
- python字符串实战
haproxy配置文件 思路:读一行,写一行 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defa ...
- C# 读取Execl和Access数据库
第一次写,请大家指教!!话不多说 直接走代码! /// <summary> /// 打开文件 /// </summary> /// <param name="s ...
- selenium + python 登录页面,输入账号、密码,元素定位问题
示例简介: 要求:登录QQ邮箱,输入账号.密码 出现问题:页面中含有iframe框架,因此直接进行元素的查找与操作,出现找不到元素的现象,首先需进行iframe框架的转换,使用switch_to_fr ...
- 用java实现大文件分割、排序、合并
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundExcepti ...
- hdu2089 不要62 我的第一个数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位DP的入门题,我是根据kuangbin的博客写出来的 思路: dp[i][0],表示长度为i ...
- hdu 1978 How many ways 记忆化搜索+DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 思路很好想: 定义f[i][j]表示从点(i,j)出发到达(n,m)的方法数: 那么对于一切从( ...
- Linux文件属性及如何修改文件属性
ls -al:显示文件的文件名与相关属性并列出所有文件详细的权限与属性 dr-xr-x---. 7 root root 4096 Apr3 12:31 ...
- [笔记]ACM笔记 - 排序小技巧
Description 一个数组,要求先对前n个数字排序(以方便后续操作):又要求对前n+i个数字排序:又要求对前n+j - 前n+k个数字排序(i.j.k的大小远小于n,且i.j.k间没有大小关系) ...
- 关于WannaCry病毒的见解与预防,我有话说!
好久没写博客了,自从定性专做技术扩展服务后,已经有两年半没有正式写过博客,要不是这次WannaCry病毒的厉害程度,我也懒得去写博客,为什么呢?写技术文章吗?两年多没有研究新的技术,没有什么好写的!所 ...
- 接口测试-jmeter
一.jmeter下载安装 1)安装jdk(见博文<windows上安装jdk>) 2)在jmeter官网下载 http://jmeter.apache.org/download_jmet ...