python笔记
- 使用字典
- 建立一个新字典
- 访问字典中的值
- 添加键值对
- 定义一个空字典
- 修改字典中的值
- 删除键值对
- 遍历字典
- 遍历所有键值对
- 遍历字典中的所有键
- 遍历字典中的所有值
- 嵌套
- 在列表中嵌套字典
- 在字典中存储列表
- 在字典中嵌套字典
使用字典
字典是python内置的数据结构之一,是个可变长序列(可以进行增删改操作),放在大括号内,是无序的。
建立一个新字典
alien_0 = {'color':'green','points':5}
在python中,字典是一系列键值对。每一个键都和一个值相关联。键值对之间用逗号分隔,键与值之间用冒号分隔。与键相关联的值可以是数,字典,字符串还有列表。
访问字典中的值
alien_0 = {'color':'green','points':5}
print(alien_0['color'])
new_points = alien_0['points']
print(f'you just earned {new_points} points')
output:
green
you just earned 5 points
另外一种访问方式用get(),与上面访问方式的区别是上面如果指定的键不存在会报错,而使用get()会返回一个默认值。
get()函数有两个参数,第一个参数用于指定键,是必不可少的;第二个参数为指定的键不存在时要返回的值,是可选的。
alien = {'color':'green','points':5}
speed = alien.get('speed','No speed value assigned')
print(speed)
No speed value assigned
如果没有指定get()函数第二个参数,在键不存在时会返回None
添加键值对
alien_0 = {'color':'green','points':5}
print(alien_0)
alien_0['x_pisition'] = 0
alien_0['y_position'] = 25
print(alien_0)
output:
{'color': 'green', 'points': 5}
{'color': 'green', 'points': 5, 'x_pisition': 0, 'y_position': 25}
定义一个空字典
alien_0 = {}
print(alien_0)
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)
output:
{}
{'color': 'green', 'points': 5}
修改字典中的值
alien_0 = {'color':'green','points':5}
print(f"The alien is {alien_0['color']}")
alien_0['color'] = 'yellow'
print(f"The alien is {alien_0['color']}")
output:
The alien is green
The alien is yellow
一开始把第二行的引号使用出错,注意在有多个引号时的使用
alien_0 = {'color':'green','points':5}
print(f‘The alien is {alien_0['color']}’)
output:
File "<ipython-input-10-e0d66ae08027>", line 2
print(f‘The alien is {alien_0['color']}’)
^
SyntaxError: invalid character in identifier
删除键值对
使用del函数,可以删除指定键及其相关联的值,指明字典名和需要删除的键。
alien_0 = {'color':'green','points':5}
print(alien_0)
del alien_0['points']
print(alien_0)
output:
{'color': 'green', 'points': 5}
{'color': 'green'}
遍历字典
遍历所有键值对
user_0 = {
'username':'efermi',
'first':'enrico',
'last':'fermi',
}
for key,value in user_0.items():
print(f"\nkey:{key}")
print(f"\nvalue:{value}")
output:
key:username
value:efermi
key:first
value:enrico
key:last
value:fermi
注意:在for循环中,key和value这两个变量名可以更改,但items不可更改,注意拼写。
遍历字典中的所有键
favourite_languages = {
'jen': 'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for name in favourite_languages.keys():
print(name.title())
output:
Jen
Sarah
Edward
Phil
访问所有的键用key()函数,name.title()是将所有的name首字母大写输出。
练习:
favourite_languages = {
'jen': 'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
friends = ['phil','sarah']
for name in favourite_languages.keys():
print(f'Hi,{name.title()}')
if name in friends:
language = favourite_languages[name].title()
print(f"\t {name.title()},I see you love {language}!")
output:
Hi,Jen
Hi,Sarah
Sarah,I see you love C!
Hi,Edward
Hi,Phil
Phil,I see you love Python!
遍历字典中的所有值
用value()函数
favourite_language = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
print('The following languages have been mentioned ')
for language in favourite_language.values():
print(language.title())
output:
The following languages have been mentioned
Python
C
Ruby
Python
可以发现此时输出项中有重复的,可以使用set函数,得到独一无二的元素。
修改代码为:
for name in set(favourite_language.values()):
output:
The following languages have been mentioned
Python
Ruby
C
嵌套
在列表中嵌套字典
alien_0 = {'color':'green','points':5}
alien_1 = {'color':'red','points':10}
alien_2 = {'color':'yellow','points':15}
alien = [alien_0,alien_1,alien_2]
print(alien)
output:
[{'color': 'green', 'points': 5}, {'color': 'red', 'points': 10}, {'color': 'yellow', 'points': 15}]
在字典中存储列表
当需要在一个键关联多个值时,都可以使用在字典中嵌套一个列表。
pizza = {
'crust':'thick',
'toppings':['mushrooms','extra cheese'],# 在字典中嵌套了列表
}
print(f"You have ordered a {pizza['crust']}-crust pizza,with the following toppings:")
for topping in pizza['toppings']:
print(topping)
output:
You have ordered a thick-crust pizza,with the following toppings:
mushrooms
extra cheese
在字典中嵌套字典
users = {
'aeinstein':{
'first':'albert',
'last':'einstein',
'location':'princeton',
},
'mcurie':{
'first':'marie',
'last':'curie',
'location':'paris',
},
}
for username,user_info in users.items():
print(f'\nUsername:{username}')
full_name = f"{user_info['first']} {user_info['last']}"
location = user_info['location']
print(f"Full name:{full_name.title()}")
print(f"Location:{location.title()}")
output:
Username:aeinstein
Full name:Albert Einstein
Location:Princeton
Username:mcurie
Full name:Marie Curie
Location:Paris