一个简单的字典

#用户信息
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. python字符串实战

    haproxy配置文件 思路:读一行,写一行 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defa ...

  2. C# 读取Execl和Access数据库

    第一次写,请大家指教!!话不多说 直接走代码! /// <summary> /// 打开文件 /// </summary> /// <param name="s ...

  3. selenium + python 登录页面,输入账号、密码,元素定位问题

    示例简介: 要求:登录QQ邮箱,输入账号.密码 出现问题:页面中含有iframe框架,因此直接进行元素的查找与操作,出现找不到元素的现象,首先需进行iframe框架的转换,使用switch_to_fr ...

  4. 用java实现大文件分割、排序、合并

    import java.io.BufferedReader;   import java.io.BufferedWriter;   import java.io.FileNotFoundExcepti ...

  5. hdu2089 不要62 我的第一个数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位DP的入门题,我是根据kuangbin的博客写出来的 思路: dp[i][0],表示长度为i ...

  6. hdu 1978 How many ways 记忆化搜索+DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 思路很好想: 定义f[i][j]表示从点(i,j)出发到达(n,m)的方法数: 那么对于一切从( ...

  7. Linux文件属性及如何修改文件属性

    ls -al:显示文件的文件名与相关属性并列出所有文件详细的权限与属性 dr-xr-x---.   7       root     root       4096       Apr3 12:31 ...

  8. [笔记]ACM笔记 - 排序小技巧

    Description 一个数组,要求先对前n个数字排序(以方便后续操作):又要求对前n+i个数字排序:又要求对前n+j - 前n+k个数字排序(i.j.k的大小远小于n,且i.j.k间没有大小关系) ...

  9. 关于WannaCry病毒的见解与预防,我有话说!

    好久没写博客了,自从定性专做技术扩展服务后,已经有两年半没有正式写过博客,要不是这次WannaCry病毒的厉害程度,我也懒得去写博客,为什么呢?写技术文章吗?两年多没有研究新的技术,没有什么好写的!所 ...

  10. 接口测试-jmeter

    一.jmeter下载安装 1)安装jdk(见博文<windows上安装jdk>) 2)在jmeter官网下载  http://jmeter.apache.org/download_jmet ...