# time:2021.05.31
# 摘取了 图书的主要内容
# 用的jupyter写的,输入输出有点区分不清楚,下面将给出源文件
# 本文为摘抄总结 望赞鼓励
下载:《Python编程:从入门到实践》_6章:字典.ipynb
第六章 字典
在python中,字典时一系列键值映射对,你可以用键key()来访问关联的值value
6.1 使用字典
alien_0 = {
'color': 'green', 'points': 5}
print(alien_0['color'])
green
- 组成形式,字符串用单引号,数字直接写;用冒号:来表示key与value映射;逗号,区分不同key
- 我们知道,访问一个key的value使用方法和列表一样用用中括号+key名字
6.1.1 添加键值对
- 还没有字典
alien = {
} # 创建一个空的
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)
{'color': 'green', 'points': 5}
- 已经存在字典了
# 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}
添加一对键值 就是:字典名字[key] = value
6.1.2 修改字典的值
alien_0['color'] = 'yellow'
print(alien_0)
{'color': 'yellow', 'points': 5, 'x_position': 0, 'y_position': 25}
修改方法就是在这个key下重新赋值value
6.1.3 删除键值对
#{'color': 'yellow', 'points': 5, 'x_position': 0, 'y_position': 25}
del alien_0['color']
print(alien_0)
{'points': 5, 'x_position': 0, 'y_position': 25}
方法:用del 字典名[key]
注意:删除的键值对永远消失了
6.1.4 有类组成的字典
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print(favorite_languages)
{'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python'}
注意:最后一个末尾有逗号,,如果写成一排没有
6.2 遍历
6.2.1 遍历所有键值
for key, value in favorite_languages.items():
print("\nKey: " + key)
print("Value: " + value)
Key: jen
Value: python
Key: sarah
Value: c
Key: edward
Value: ruby
Key: phil
Value: python
- 一定要加.items();返回的是键值对
- key value这里不是关键字,可以换成任何两个,对应的都是key,value,比如下面
for name, favourite_language in favorite_languages.items():
print("\nKey: " + name)
print("Value: " + favourite_language)
Key: jen
Value: python
Key: sarah
Value: c
Key: edward
Value: ruby
Key: phil
Value: python
6.2.2 遍历所有键
for name in favorite_languages.keys():
print(name.title())
Jen
Sarah
Edward
Phil
- .keys() 是取得字典里面的key
- .title()前面学了,是首字母大写
6.2.3 按顺序遍历所有键
- sorted()来获得按特定顺序排列的键列表的副本:
for name in sorted(favorite_languages.keys()):
print(name.title())
Edward
Jen
Phil
Sarah
6.2.4 遍历字典中所有值
用.values()
for value in favorite_languages.values():
print(value.title())
Python
C
Ruby
Python
- sorted排序是暂时的;sort()排序是永久的
- 这种做法提取字典中的所有值,而没有考虑重复。如果考虑重复,可用集合(set),使每个元素都独一无二:
# 我们发现有两个python
for value in set(favorite_languages.values()):
print(value.title())
Ruby
Python
C
用了set,两个重复的python只输出第一个
6.3 镶嵌
6.3.1 在列表里镶嵌字典
一个列表aliens装了三个列表:
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}
6.3.2 在字典里镶嵌列表
# 存储所点比萨的信息
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
当字典里某一个key对应值value是个列表时,我们用了for循环:字典名[key名]
6.3.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())
Username: aeinstein
Full name: Albert Einstein
Location: Princeton
Username: mcurie
Full name: Marie Curie
Location: Paris
- users是个字典,内容是两个字点a,m(省略写了)
- 我们用username, user_info去了字典users的key和value,其中users.value()是字典
- 那么user_info就是内部的字典名字,用字典规则进行操作就行
转载:https://blog.csdn.net/wistonty11/article/details/117432520
查看评论