Python学习笔记(五)——字典
2021/10/27 22:10:20
本文主要是介绍Python学习笔记(五)——字典,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字典在功能上有点像C中的结构体
一 一个简单的字典
看一个例子,一个字典中包含了一些外星人,这些外星人颜色和点数各不相同。
alien_0={'color':'green','points':5} print(alien_0['color']) print(alien_0['points'])
二 使用字典
在Python中,字典是一系列键-值对。每个键都与一个值相关联,我们可以使用键来访问与之关联的值,与键相关的可以是数字字符串,列表乃至字典。
1.访问字典中的值
可依此指定字典名与放在方括号里的键
alien_0={'color':'green','points':5} print(alien_0['color'])
也可以取一个中间变量:
alien_0 = {'color': 'green', 'points': 5} new_points = alien_0['points'] print("You just earned " + str(new_points) + " points!")
2.添加键-值对
字典是一种动态结构,可以随时在其中添加键-值对。
比如,我们需要知道这个外星人的位置:
alien_0={'color':'green','points':5} alien_0['x_position'] = 0 alien_0['y_position'] = 25 print(alien_0)
输出结果:
{‘color’: ‘green’, ‘points’: 5, ‘x_position’: 0, ‘y_position’: 25}
3.先创建一个空字典
我们可以先创建一个空字典,再分行添加键-值对。如题:
alien_0 = {} alien_0['color'] = 'green' alien_0['points'] = '5' print(alien_0)
输出结果;
{‘color’: ‘green’, ‘points’: ‘5’}
4.修改字典中的值
要修改字典中的值,可知道字典名,用方括号括起来指定的键,并赋予相关联的新值
alien_0={'color':'green','points':5} print(alien_0) alien_0['color'] = 'yellow' print(alien_0)
我们来看更复杂的一个例子:
alien_0 = {'x_position': 0, 'y_position': 25, 'speed': 'medium'} print("Original x-position: " + str(alien_0['x_position'])) #向右移动外星人 #据外星人的速度决定其移动多远 if alien_0['speed'] == 'slow': x_increment = 1 elif alien_0['speed'] == 'medium': x_increment = 2 else:#这个外星人移动的很快 x_increment = 3 alien_0['x_position'] = alien_0['x_position'] + x_increment print('Now x_position:' + str(alien_0['x_position']))
我们可以通过if语句决定给外星人移动的值
5.删除键-值对
对于字典中不再需要的值,可以使用del语句将相应的值-键彻底删除
alien_0 = {'color': 'green', 'points': 5} print(alien_0) del alien_0['points'] print(alien_0)
注意:删除掉的值是永久消失了
6.由类似对象组成的字典
字典不仅可以储存一个对象的多种信息,也可以存储不同对象的信息。例题中存储的是不同人喜欢用的编程语言:
favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } print("Phili's faorite language is "+favorite_languages['jen'].title())
三 遍历字典
1.遍历所以的键——值对
第一:要编写能遍历字典的for循环,应该要先声明两个变量:一个代表键,一个代表值
注意,这两个变量可以代表任何值
第二: 字典名和方法items()它返回一个键-值列表。接下来for循环将一次将每个值存储在指定的两个变量中。
注意:即便遍历字典时,键-值对的返回顺序也与存储顺序不同。Python不关心键-值对的存储顺序,而只跟踪键和值之间的关联关系。
user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', } for key,value in user_0.items(): print('\nKey',key) print('\nValue',value)
2.遍历字典中的所有值
在不需要实验字典中的值时,方法key()可以把所有键名打印出来
favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } for name in favorite_languages.keys(): print(name.title());
这里有一个稍微复杂些的例子,我们可以在遍历的基础上加一些操作:
favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } friends = ['jen','phil'] for name in favorite_languages.keys(): print(name.title()); if name in friends: print(name+"'s favorite language is "+favorite_languages[name].title()+"!")
keys()并非只能用于遍历;实际上,它可以返回一个列表,其中包含了字典中所有的键。
3.按顺序遍历字典中的所有键
通常我们获取字典的元素时,获取顺序是不可预测的。我们可以使用函数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.")
4.遍历字典中的所有值
我们可以使用方法values(),它返回一个值列表,而不包含任何键。
例如:
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())
当我们的项目具有重复项时,我们可以使用集合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())
四 嵌套
有时,我们需要将一些列表存储在字典里,或者将一些字典存储在列表里,这就是嵌套。
1.字典列表
我们的allen只能存储一个外星人的信息,无法同时存储三个。此时例题:
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)
更符合现实的是,外星人不止三个,且每个都是随机生成的。此时:
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("Total number of aliens is "+str(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[0:3]:#alien是指字典 if alien['color'] == 'green': alien['color'] = 'yellow' alien['points'] = 10 alien['speed'] = 'medium' for alien in aliens[0:5]: print(alien) print("Total number of aliens is "+str(len(aliens)))
我们可以进一步扩展改程序,比如利用elif把黄色外星人改为红色等等
2.在字典中存储列表
当我们需要将一个键关联到多个关联词时,可以使用到嵌套:
pizzas = { 'crust':'thick', 'toppings':['mushrooms','extra chess'] } print("you want a"+pizzas['crust']+"-crust pizza") print("wint toppings:") for topping in pizzas['toppings']: print("\t"+topping)
3.在字典中存储字典
比如,我们需要列出几个不同的用户,并存储不同用户的个人信息。此时应该用到字典中存储字典;
users = { 'aeinstein': { 'first': 'albert', 'last': 'einstein', 'location': 'princeton', }, 'mcurie': { 'first': 'marie', 'last': 'curie', 'location': 'paris', }, } for username, user_info in users.items(): print("\nUsername: " + username) full_name = user_info['first'] + " " + user_info['last'] location = user_info['location'] print("\tFull name: " + full_name.title()) print("\tLocation: " + location.title())
这篇关于Python学习笔记(五)——字典的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门