一个简单的字典

#用户信息
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
如上面的运行结果,我们看到了有重复的值,那么如何消除重复的值?
调用set()即可!
#最喜欢的语言
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编程从入门到实践》_第六章_字典的更多相关文章

  1. 《Python编程从入门到实践》第三章_列表简介

    什么是列表呢? 官方说明就是由一些列按特点顺序排列的元素组成.其实可以看出很多个字符串的有序组合吧,里面的内容可以随时的删除,增加,修改. 下面这个就是一个列表,python打印列表的时候会将中括号和 ...

  2. 《python编程从入门到实践》第六章笔记

    1.字典 字典:一系列键-值对,每一个键都与每一个值相关联.与键相关联的值可以是数字.字符串.列表和字典. 最简单的字典只有一个键值对. eg: alien = {'color':'green','p ...

  3. 《python编程从入门到实践》第七章笔记

    用户输入和while循环 1.函数input():让程序停止运行,等待用户输入一些文本.接受一个参数,既即要向用户显示的提示或说明. 2.将数值输入用于计算和比较前,务必将其转换为数值表示. 3.fo ...

  4. 《Python编程从入门到实践》_第十章_文件和异常

    读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕 ...

  5. 《python编程从入门到实践》读书实践笔记(一)

    本文是<python编程从入门到实践>读书实践笔记1~10章的内容,主要包含安装.基础类型.函数.类.文件读写及异常的内容. 1 起步 1.1 搭建环境 1.1.1 Python 版本选择 ...

  6. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  7. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  8. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  9. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  10. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

随机推荐

  1. phpcms后台管理

    phpcms从网上下载就好了,记住这个要安装在Wamp中的www文件下 从网页输入网址进入后台控制 输入密码账号,即进入后台控制界面: 后台管理有自带的网页模板把他换成自己的模板: 修改站点:   把 ...

  2. java-cef嵌入基于Chrome内核浏览器,做页面爬虫(可以尽在ajax异步请求数据)

    1 CentOS 7.0 上安装和配置 VNC 服务器 2.1 2.1.1 首先,我们需要一个可用的桌面环境(X-Window),如果没有的话要先安装一个. 注意:以下命令必须以 root 权限运行. ...

  3. [转载]PHP检测一个元素是否存在于数组中

  4. 企业Centos服务器分区常用方案

    方案一: 一般公司生产环境,数据不是非常重要,集群架构中的一个节点服务器: /boot: 200M swap: 8G内存以下,1.5倍 8G内存以上,设置8G就够了 / : 剩下的所以存储空间 方案二 ...

  5. poj2774 Long Long Message 后缀数组求最长公共子串

    题目链接:http://poj.org/problem?id=2774 这是一道很好的后缀数组的入门题目 题意:给你两个字符串,然后求这两个的字符串的最长连续的公共子串 一般用后缀数组解决的两个字符串 ...

  6. [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...

  7. OpenStack Newton版本Ceph集成部署记录

    2017年2月,OpenStack Ocata版本正式release,就此记录上一版本 Newton 结合Ceph Jewel版的部署实践.宿主机操作系统为CentOS 7.2 . 初级版: 192. ...

  8. String的Intern方法详解

    引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String.这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念.常量池就类似一个JAVA系统级别提供的缓存.8种 ...

  9. vim 和grep 正则表达式相似和区别

    正则表达式由两种基本字符类型组成:原义(正常)文本字符和元字符.元字符使正则表达式具有处理能力.所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符 ...

  10. 关于MySQL数据库的一些操作

    启动:net start MySQL 关闭:net stop MySQL (也可以用quit:) 登录到MySQL:mysql -u root -p -u : 所要登录的用户名; -p : 告诉服务器 ...