Python-6.1-字典
字典
- 学习如何访问和修改字典的信息
- 学习如何遍历字典中的数据
- 学习存储字典的列表、存储列表的字典和存储字典的字典
一:使用字典
1、在Python中,字典是一系列键-值对
- 键—值对是两个相关联的值。键和值之间用冒号(:)分隔,而键-值对之间用逗号分隔
2、访问字典中的值
#访问字典中的值
apple = {'color':'red','price':5}
print(apple['color'])
print(str(apple['price']) + " RMB")
red
5 RMB
3、添加键-值对
- 字典是一种动态结构,可随时在其中添加键-值对。
- 添加键-值对,可依次指定字典名、用方括号括起来的键和相关联的值
#添加键—值对
apple = {'color':'red','price':5}
print("Original: " + str(apple))
apple['size'] = 'big'
print("Now: " + str(apple))
Original: {‘color’: ‘red’, ‘price’: 5}
Now: {‘color’: ‘red’, ‘price’: 5, ‘size’: ‘big’}
4、先创建一个空字典
- 使用字典来存储用户提供的数据或在编写能自动生成大量键-值对的带吗时,通常都需要定义一个
#创建一个空字典,存储键-值对
apple = {}
apple['color'] = 'red'
apple['price'] = 5
print(apple)
{‘color’: ‘red’, ‘price’: 5}
5、修改字典中的值
- 要修改字典中的值,可依次指定字典名、用方括号括起来的键以及键相关联的新值
#修改字典中的值
apple = {'color':'red','price':5}
print("Original: " + str(apple))
#修改apple的颜色为green
apple['color'] = 'green'
print("Now: " + str(apple))
修改前: {‘color’: ‘red’, ‘price’: 5}
修改后: {‘color’: ‘green’, ‘price’: 5}
6、删除键-值对
- 可使用del语句将相应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
#删除键-值对
apple = {'color':'red','price':5}
print("Original: " + str(apple))
#删除字典中d额color的键—值对
del apple['color']
print("Now: " + str(apple))
Original: {‘color’: ‘red’, ‘price’: 5}
Now: {‘price’: 5}
7、由类似对象组成的字典
#将字典中的键-值对分成多行
fruit_color = {
'apple':'red',
'banana':'yellow',
'pear':'green',
}
#将较长的print语句分成多行
print("The apple color is " +
fruit_color['apple'])
The apple color is red
二:遍历字典
1、遍历所有键—值对,可使用方法items()
#遍历所有键-值对
fruit_color = {
'apple':'red',
'pear':'green',
'banana':'yellow',
}
#声明两个变量,用于存储键-值对中的键和值
for key,value in fruit_color.items():
print('key: ' + key)
print('value: ' + value + '\n')
key: apple
value: red
key: pear
value: green
key: banana
value: yellow
2、遍历字典中的所有的键
- 不需要使用字典中的值时,可使用方法keys()遍历字典中的所有键
- 遍历字典时,会默认遍历所有的键。因此办理字典中的所有键时,可以忽略key()
#遍历字典中的所有键
fruit_color = {
'pear':'green',
'banana':'yellow',
'apple':'red',
}
#声明一个变量,用于存储字典中键
for key in fruit_color.keys():
print('key: ' + key + '\n')
key: pear
key: banana
key: apple
3、按顺序遍历字典中的的所有键
- 获取字典中的元素时,获取顺序是不可预测的
- 可使用函数sorted()来获得特定顺序排列的键副本
#按顺序遍历字典中的所有键
fruit_color = {
'pear':'green',
'banana':'yellow',
'apple':'red',
}
#调用函数sorted(),在遍历前对这个列表进行排序
for key in sorted(fruit_color.keys()):
print(key.title())
Apple
Banana
Pear
4、遍历字典中的所有值
- 可使用方法values(),它返回一个值列表,而不包含任何键
- 为剔除重复项,可使用集合(set)
- 集合类似于列表,但每个元素都必须是独一无二的
#遍历字典中的所有值
fruit_color = {
'pear' : 'green',
'banana' : 'yellow',
'apple' : 'red',
'orange' : 'yellow',
'watermelon' : 'green'
}
for value in fruit_color.values():
print(value)
print('\n')0
#剔除重复项
fruit_color = {
'pear' : 'green',
'banana' : 'yellow',
'apple' : 'red',
'orange' : 'yellow',
'watermelon' : 'green'
}
for value in set(fruit_color.values()):
print(value)
green
yellow
red
yellow
green
green
red
yellow
三:嵌套
- 需要将一系列字典存储在列表中,或将列表作为值存储在字典中,称为"嵌套"
- 可以在列表中嵌套字典、、在字典中嵌套列表甚至在字典中嵌套字典
1、在列表中存储字典
- 将字典存储在列表中,字典与字典之间用逗号相隔开
#在列表中存储字典
apple = {
'color':'red',
'size':'big',
'price':5
}
banana = {
'color':'yellow',
'size':'medium',
'price':3
}
pear = {
'color':'green',
'size':'small',
'price':6
}
#将字典存储在列表中
fruits = [ apple , banana , pear ]
name_fruit = ['apple','banana','pear']
#遍历列表
for fruit in fruits:
#将每种水果信息都打印出来
print(fruit)
{‘color’: ‘red’, ‘size’: ‘big’, ‘price’: 5}
{‘color’: ‘yellow’, ‘size’: ‘medium’, ‘price’: 3}
{‘color’: ‘green’, ‘size’: ‘small’, ‘price’: 6}
2、在字典中存储列表
- 需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表
#字典中存储列表
apple = {
'color':['red','green'],
'size':'big'
}
#遍历字典中键color中的所有值
for color in apple['color']:
#打印出键color的值
print("The apple color is " + color +
" and size is " + apple['size'] +'.')
print('-----------------------------------------')
print("The apple have two color : ")
#遍历字典中键color中的所有值
for color in apple['color']:
#打印出键color的值
print('\t' + color)
The apple color is red and size is big.
The apple color is green and size is big.
——————————————————
The apple have two color :
red
green
3、在字典中存储字典
- 有多个种类的水果,每种水果都有独特的名字,可在字典中将水果名作为键,然后将每种水果的信息存储在一个字典中,并将该字典作为与水果名相关联的值
#在字典中存储字典
fruits = {
'apple' : {
'color' : 'red',
'size' : 'big'
},
'pear' : {
'color' : 'green',
'size' : 'small'
},
'banana' : {
'color' : 'yellow',
'size' : 'medium'
}
}
#遍历fruits所有的键-值对
for fruit_name , fruit_value in fruits.items():
#打印出每种水果的名字
print('\n' "Fruit name : " + fruit_name.title() )
#打印出每种水果的颜色
print('\t' + 'Color : ' + fruit_value['color'].title())
#打印出每种水果的大小
print('\t' + 'Size : ' + fruit_value['size'].title())
Fruit name : Apple
Color : Red
Size : Big
Fruit name : Pear
Color : Green
Size : Small
Fruit name : Banana
Color : Yellow
Size : Medium