Python编程入门到实践 - 笔记( 6 章)


第 6 章主要练习了各种字典,以下内容

什么是字典

字典中 键-值 的关系

一个简单的字典

通过字典中的键查找其对应的值

在字典中添加 键-值

修改字典中的值

遍历字典中的键值对 items( )

遍历字典中的键 keys( )

遍历字典中的值 value( )

遍历字典中的值并且去重复 set( )

列表中嵌套字典

通过 for 循环将字典添加到同一个列表中

在字典中存储列表并打印

什么是字典?

我自己来个不成熟的总结吧:就是一个高级列表,为啥说是高级列表,因为列表中的元素是单一的,没有属性

而字典可以指定属性。比如说:你叫张三,在列表中只能存储张三这个姓名,而字典可以储存为 --- 姓名:张三

字典使用花括号 { }

列表使用中括号 [ ]

元组使用小括号 ( )

字典中的 键-值 关系

比如这个简单的列表 alien_0 = {‘color‘: ‘green‘, ‘points‘: 5}

color 是键,green 是值

一个简单的字典

通过 键 获取相关的 值

------------------------------------------------

alien_0 = {‘color‘: ‘green‘, ‘points‘: 5}  
print(alien_0[‘color‘])    
print(alien_0[‘points‘])

------------------------------------------------

green  
5

如何引用的字典中的值

将通过字典中的键获取到的值定义一个变量,并在 print 中引用

------------------------------------------------------------------------

alien_0 = {‘color‘: ‘green‘, ‘points‘: 5}  
new_points = alien_0[‘points‘]    
print("You just earned " + str(new_points) + " points!")

------------------------------------------------------------------------

You just earned 5 points!

添加 键-值

在 alien_0 字典中在添加两个键值对

----------------------------------------------------------------------------

alien_0 = {‘color‘: ‘green‘, ‘points‘: 5}  
print(alien_0)

alien_0[‘x_position‘] = 0  
alien_0[‘y_position‘] = 25    
print(alien_0)

-----------------------------------------------------------------------------

{‘color‘: ‘green‘, ‘points‘: 5}  
{‘color‘: ‘green‘, ‘points‘: 5, ‘x_position‘: 0, ‘y_position‘: 25}

在空字典中添加键值对

----------------------------------

alien_0 = {}

alien_0[‘color‘] = ‘green‘  
alien_0[‘points‘] = 5

print(alien_0)

-----------------------------------

{‘color‘: ‘green‘, ‘points‘: 5}

修改字典中的值

---------------------------------------------------------------

alien_0 = {‘color‘: ‘green‘}  
print("The alien is " + alien_0[‘color‘] + ".")

alien_0[‘color‘] = ‘yellow‘  
print("The alien is now " + alien_0[‘color‘] + ".")

---------------------------------------------------------------

The alien is green.  
The alien is now yellow.

删除键值对

和列表相同,使用 del 删除字典中的键值(永久性删除)

------------------------------------------------

alien_0 = {‘color‘: ‘green‘, ‘points‘: 5}  
print(alien_0)

del alien_0[‘points‘]  
print(alien_0)

-------------------------------------------------

{‘color‘: ‘green‘, ‘points‘: 5}  
{‘color‘: ‘green‘}

由类似对象组成的字典

通过键调用字典中的值

-------------------------------------------------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
     ‘edward‘: ‘ruby‘,    
     ‘phil‘: ‘python‘,    
}

print("Sarah‘s favorite language is " + favorite_languages[‘sarah‘].title() + ".")

-------------------------------------------------------------------------------------------

Sarah‘s favorite language is C.

items( ) 遍历所有的键值对

可以通过一个简单的 for 循环遍历这个字典

-----------------------------------------

user_0 = {  
     ‘username‘: ‘efermi‘,    
     ‘first‘: ‘enrico‘,    
     ‘last‘: ‘fermi‘,    
}

for key, value in user_0.items():  
     print("\nKey: " + key)    
     print("Value: " + value)

------------------------------------------

Key: username  
Value: efermi

Key: first  
Value: enrico

Key: last  
Value: fermi

遍历字典的一个小实例

-------------------------------------------------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
     ‘edward‘: ‘ruby‘,    
     ‘phil‘: ‘python‘,    
}

for name, language in favorite_languages.items():  
     print(name.title() + "‘s favorite language is " + language.title() + ".")

-------------------------------------------------------------------------------------------

Jen‘s favorite language is Python.  
Sarah‘s favorite language is C.    
Edward‘s favorite language is Ruby.    
Phil‘s favorite language is Python.



keys( ) 遍历字典所有的键

其实不加 keys() 也没关系,因为字典默认就会遍历所有的键

这样更清楚而已

--------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
     ‘edward‘: ‘ruby‘,    
     ‘phil‘: ‘python‘,    
}

for name in favorite_languages.keys():  
     print(name.title())

---------------------------------------------------

Jen  
Sarah    
Edward    
Phil

使用 for 循环遍历字典中内容

并定义一个列表做 if 判断,如果 for 循环中有列表的元素

就在打印一句话

-------------------------------------------------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
     ‘edward‘: ‘ruby‘,    
     ‘phil‘: ‘python‘,    
}

friends = [‘phil‘, ‘sarah‘]  
for name in favorite_languages.keys():    
     print(name.title())

if name in friends:  
          print(" Hi " + name.title() + ", I see your favorite language is " + favorite_languages[name].title() + "!")

-------------------------------------------------------------------------------------------

Jen  
Sarah    
  Hi Sarah, I see your favorite language is C!    
Edward    
Phil    
  Hi Phil, I see your favorite language is Python!

使用 keys() 遍历,检查字典中的 键 是不是存在指定的字符,并做 if 判断

如果 erin 不存在字典中,就指定 print

-----------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
      ‘edward‘: ‘ruby‘,    
     ‘phil‘: ‘python‘,    
}

if ‘erin‘ not in favorite_languages.keys():  
     print("Erin, please take our poll!")

------------------------------------------------------

Erin, please take our poll!

按顺序遍历字典中的所有键

调用 sorted( ) 进行排序

-------------------------------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
     ‘edward‘: ‘ruby‘,    
     ‘phil‘: ‘python‘,    
}

for name in sorted(favorite_languages.keys()):  
     print(name.title() + ", thank you for taking the poll.")

-------------------------------------------------------------------------

Edward, thank you for taking the poll.  
Jen, thank you for taking the poll.    
Phil, thank you for taking the poll.    
Sarah, thank you for taking the poll.

value( ) 遍历字典中的所有值并大写

---------------------------------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
     ‘edward‘: ‘ruby‘,    
      ‘phil‘: ‘python‘,    
}

print("The following languages have been mentioned:")  
for language in favorite_languages.values():    
     print(language.title())

---------------------------------------------------------------------------

The following languages have been mentioned:  
Python    
C    
Ruby    
Python

在数据比较多的情况下,可以使用 set( ) 去除重复项

set( ) 合集

--------------------------------------------------------------------------

favorite_languages = {  
     ‘jen‘: ‘python‘,    
     ‘sarah‘: ‘c‘,    
     ‘edward‘: ‘ruby‘,    
     ‘phil‘: ‘python‘,    
}

print("The following languages have been mentioned:")  
for language in set(favorite_languages.values()):    
     print(language.title())

--------------------------------------------------------------------------

The following languages have been mentioned:  
Python    
C    
Ruby

嵌套:列表中嵌套字典

----------------------------------------------------

alien_0 = {‘color‘: ‘green‘, ‘points‘: 5}  
alien_1 = {‘color‘: ‘yellow‘, ‘points‘: 10}    
alien_2 = {‘color‘: ‘red‘, ‘points‘: 15}

aliens = [alien_0, alien_1, alien_2]  
for alien in aliens:    
     print(alien)

----------------------------------------------------

{‘color‘: ‘green‘, ‘points‘: 5}  
{‘color‘: ‘yellow‘, ‘points‘: 10}    
{‘color‘: ‘red‘, ‘points‘: 15}

使用循环创建字典列表

for 循环 30 次,将 new_alien 的字典放到 aliens 列表中

打印前 5 次

用 len( ) 计算 aliens 列表的长度

---------------------------------------------------------------------------

aliens = []

for alien_number in range(30):  
     new_alien = {‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
     aliens.append(new_alien)

for alien in aliens[:5]:  
     print(alien)    
print("...")

print("Total number of aliens: " + str(len(aliens)))

---------------------------------------------------------------------------

{‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}  
{‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
{‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
{‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
{‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
...    
Total number of aliens: 30

在字典循环中进行比较并更改值

先定义一个空列表 aliens,将 new_alien 的列表循环 30 次加到 aliens 列表中

第二个 for 循环先对 aliens 切片,进行判断

==  是进行比较

=  是进行更改

第三个 for 循环是打印 aliens 列表的前 5 个元素,可以看出修改后的不同

----------------------------------------------------------------------------

aliens = [ ]

for alien_number in range(30):  
     new_alien = {‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
     aliens.append(new_alien)

for alien in aliens[0:3]:  
     if alien[‘color‘] == ‘green‘:    
          alien[‘color‘] = ‘yellow‘    
          alien[‘speed‘] = ‘medium‘    
          alien[‘points‘] = 10

for alien in aliens[0:5]:  
     print(alien)    
print("...")

----------------------------------------------------------------------------

{‘color‘: ‘yellow‘, ‘points‘: 10, ‘speed‘: ‘medium‘}  
{‘color‘: ‘yellow‘, ‘points‘: 10, ‘speed‘: ‘medium‘}    
{‘color‘: ‘yellow‘, ‘points‘: 10, ‘speed‘: ‘medium‘}    
{‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
{‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}    
...

在字典中存储列表

在 pizza 字典中 toppings 列表中有两个值,都可以分别打印

------------------------------------------------------------------------------------------------------------------

pizza = {  
     ‘crust‘ : ‘thick‘,    
     ‘toppings‘ : [‘mushrooms‘, ‘extra cheese‘]    
}

print("You ordered a " + pizza[‘crust‘] + "-crust pizza " + "with the following toppings:")

for topping in pizza[‘toppings‘]:  
     print("\t" + topping)

------------------------------------------------------------------------------------------------------------------

You ordered a thick-crust pizza with the following toppings:  
    mushrooms    
    extra cheese

对字典进行 for 循环,在将字典中的列表的元素再次进行循环

-------------------------------------------------------------------------------

favorite_languages = {  
     ‘jen‘: [‘python‘, ‘ruby‘],    
     ‘sarah‘: [‘c‘],    
     ‘edward‘: [‘ruby‘, ‘go‘],    
     ‘phil‘: [‘python‘, ‘haskell‘],    
}

for name, languages in favorite_languages.items():  
     print("\n" + name.title() + "‘s favorite languages are:")    
     for language in languages:    
          print("\t" + language.title())

-------------------------------------------------------------------------------

Jen‘s favorite languages are:  
    Python    
    Ruby

Sarah‘s favorite languages are:  
    C

Edward‘s favorite languages are:  
    Ruby    
    Go

Phil‘s favorite languages are:  
    Python    
    Haskell

时间: 2024-11-15 17:56:54

Python编程入门到实践 - 笔记( 6 章)的相关文章

Python编程入门到实践 - 笔记(1,2章)

自学 Python 有段时间了,总是觉得自己基础不牢,想着把看完的两本基础书写个博客做个笔记啥的. 准备在重新看一遍<Python编程入门到实践>,坚持写博客笔记. Python编程入门到实践的前两章笔记,学习的内容如下: 查看当前环境中的 python 版本 python环境的搭建 变量和变量的命名 字符串的打印 修改字符串的大小写 制表符和换行符 删除空白字符 python的整数运算,计算平方,立方 使用 str() 函数 查看当前环境中的 python 版本 命令行下输入 python 

Python编程入门到实践 - 笔记( 8 章)

第 8 章主要练习了各种函数,内容如下 定义一个简单的函数 向函数传递信息 什么是形参 什么是实参 位置参数 多次调用函数 关键字实参 默认值参数 返回值 return 让参数编程可选的 返回字典 结合使用函数和 while 循环 传递列表 在函数中修改列表 传递任意数量的实参 传递任意数量的参数并循环打印 结合使用位置参数和任意数量实参 使用任意数量的关键字实参 导入整个模块 导入特定的函数 使用 as 给函数指定别名 使用 as 给模块指定别名 导入模块中所有的函数 定义一个简单的函数 直接

Python编程入门到实践 - 笔记( 5 章)

第 5 章练习了以下内容 简单的 if 判断语句 判断字符串是否相等,还是不等 进行数字的大小比较 and,or 比较 检查列表中是否存在指定的元素 if,if-else,if-elif-else 语句写法 if 判断列表是否为空 使用多个列表进行比较判断 这一章的内容也比较简单,感觉和 shell 差不多,但还是多练习吧. 希望路过的大牛指出不足,小弟在此谢过了. 一个简单的 if 判断语句 循环打印 cars 列表中的元素,如果其中的元素等于 bmw,就全部大写打印 否则只是将元素的首字母大

Python编程入门到实践 - 笔记( 9 章)

第 9 章主要讲的类,这个之前在 shell 中没遇到过 一直运用的也不是很溜,不过多敲多练,应该会有进步吧 创建类和使用类 创建一个 Dog 类 --------------------------------------------------------------------- class Dog():         def __init__(self, name, age):               self.name = name               self.age

Python编程入门到实践 - 笔记( 7 章)

第 7 章讲了用户输入 input( ) 和 while 循环,内容如下 input( ) 工作原理 超过一行的 input( ) int( ) 来获取数字的输入,进行比较 求模运算 简单的 while 循环.我自己的理解就是设定一个条件,while 满足这个条件开始循环,不满足退出 break 直接退出 continue 跳出当前层的循环 避免无限循环 while 在列表中的应用 while 删除列表中指定的字符串 remove() 用户输入的字符来填充字典 input( ) 工作原理 首先定

Python编程入门到实践 - 笔记( 3 章)

练习内容包括 创建并访问列表 列表的索引 使用列表中的各个值 修改列表中的元素 在列表中添加元素 append() 在列表中插入元素 insert() 在列表中删除元素 del,pop() 根据值删除列表中的元素 remove() 对列表中的元素进行排列 1)永久性修改 sort(),按字母表正向排列 2)永久性修改 sort(reverse=True),按字母表反向排列 3)临时修改 sorted(),按字母表正向排列 对列表中的元素进行反转打印 reverse() 计算列表长度 len()

Python编程入门与实践pdf电子版下载

Python编程入门与实践pdf电子版下载 分享链接:https://pan.baidu.com/s/1h7TfuuUcaju8nkrMZgv-hg 提取码:7lo8 本书针对想要学习Python却无从下手的同学们准备的,希望好的资源能够给老铁提供有用的帮助 书籍目录 第一部分 基础知识 第1章 起步 1.1 搭建编程环境 1.1.1 Python 2和Python 3 1.1.2 运行Python代码片段 1.1.3 Hello World程序 1.2 在不同操作系统中搭建Python编程环境

Python编程入门到实践(三)

1.异常 异常是使用try-except代码块处理的.try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办. 使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好错误消息,而不是令用户迷惑的traceback.. print(5/0) Traceback (most recent call last): File "exception_division", line 1, in <module> pri

Python:从入门到实践--第三章--列表简介--练习

#1.将一些朋友的姓名存储在一个列表中,并将其命名为friends.依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来. #2.继续使用1中的列表,为每人打印一条消息,每条消息包含相同的问候语,但抬头为相应朋友的名字 #3.创建一个自己喜欢的出行方式列表.根据该列表打印一系列有关这些出行方式的宣言. friends = ['马脑壳','小波','玮哥','二小姐','短命','田鸡'] print(friends[0] +'\n' + friends[1] + '\n' + friend