一个简单的字典

#用户信息
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. 事件的preventDefault方法

    事件有一个preventDefault()方法,该方法可以用来取消事件的默认行为.许多事件都有默认执行的关联行为.例如,如果用户在文本字段中键入一个字符,则默认行为就是在文本字段中显示该字符.由于可以 ...

  2. 使用Perl提取Excel中的IO_MUX

    使用Perl提取Excel中的IO_MUX 关键问题 提取数据 格式化输出 循环嵌套 数据结构构建 坐标映射,逆向提取关键字 描述 在IC集成中,我们使用Excel表格规划设计的IC引脚功能映射需要转 ...

  3. IOC容器的依赖注入

    1.依赖注入发生的时间 当Spring IoC容器完成了Bean定义资源的定位.载入和解析注册以后,IoC容器中已经管理类Bean定义的相关数据,但是此时IoC容器还没有对所管理的Bean进行依赖注入 ...

  4. UPYUN云服务体验计划,阅读神器Kindle、LaCie移动硬盘、索尼大法充电宝、高大上极路由、UPYUN代金券等你拿!

    请看以下的“通关攻略”,分享你对云服务的“体验心得”,即可赢取绝佳的“通关宝藏”,阅读神器Kindle.LaCie移动硬盘.索尼大法充电宝.高大上极路由.UPYUN代金券等你拿!先来了解下UPYUN能 ...

  5. Git操作指南

    请访问以下网址,很详细,今天偷个懒记录一下,之后有时间再来补全吧! https://git-scm.com/book/zh/v2

  6. Ext4中内存使用技巧的一点思考

           今天在分析Ext4文件系统的时候,看到两个函数ext4_kvzalloc()/ext4_kvfree(),想到以前在使用kzalloc()/kmalloc()带来的内存分配失败问题,不得 ...

  7. MySQL注入与防御(排版清晰内容有条理)

    为何我要在题目中明确排版清晰以及内容有条理呢? 因为我在搜相关SQL注入的随笔博客的时候,看到好多好多都是页面超级混乱的.亲爱的园友们,日后不管写博客文章还是平时写的各类文章也要多个心眼,好好注意一下 ...

  8. 蓝桥杯-打印十字图-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  9. html页面顶部出现一段空白,检查控制台发现body 下出现&#65279字符,原因及解决办法

    html页面顶部出现一段空白,检查控制台发现body 下出现&#65279字符,原因及解决办法 分析: 原来是页面编码时增加了BOM,此页面后端数据主要是PHP语言,对PHP来讲PHP在设计时 ...

  10. 用户登录安全框架shiro—用户的认证和授权(一)

     ssm整合shiro框架,对用户的登录操作进行认证和授权,目的很纯粹就是为了增加系统的安全线,至少不要输在门槛上嘛. 这几天在公司独立开发一个供公司内部人员使用的小管理系统,客户不多但是登录一直都是 ...