字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
语法:
1 goods = {
2 'apple':4.5,
3 'orange':2.3,
4 'banana':3.5
5 }
字典的特性:
1.增加元素
1 >>> goods
2 {'apple': 4.5, 'banana': 3.5, 'orange': 2.3}
3 >>> goods['peach']=5.0
4 >>> goods
5 {'apple': 4.5, 'banana': 3.5, 'orange': 2.3, 'peach': 5.0}
2.修改
1 >>> goods['apple']=5.5 # 将苹果的价格改为 5.5
2 >>> goods
3 {'apple': 5.5, 'banana': 3.5, 'orange': 2.3, 'peach': 5.0}
3.删除元素
1 >>> goods
2 {'apple': 5.5, 'banana': 3.5, 'orange': 2.3, 'peach': 5.0}
3 >>> goods.pop('peach') #删除peach,并返回value的值
4 5.0
5 >>> goods
6 {'apple': 5.5, 'banana': 3.5, 'orange': 2.3}
7
8 >>> del goods['banana'] # 指定 key的删除
9 >>> goods
10 {'apple': 5.5, 'orange': 2.3}
11
12 >>> goods
13 {'apple': 5.5, 'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}
14 >>> goods.popitem() # 随机删除
15 ('apple', 5.5)
16 >>> goods
17 {'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}
4.查找
1 >>> goods
2 {'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}] # key的值在字典中存在
3 >>> 'grape' in goods
4 True # key存在就返回 value , 不存在就返回 None
5 >>> goods.get('orange') # 知道key,获取 value
6 2.3
7 >>> goods['watermelon']
8 12.0
9 >>> goods['apple'] # 如果一个key不存在,就会报错,get不会,不存在只会返回None
10 Traceback (most recent call last):
11 File "<stdin>", line 1, in <module>
12 KeyError: 'apple'
5.多级字典及操作
1 area = {'浙江':
2 {
3 '杭州':['西湖区','下城区','萧山区'],
4 '嘉兴':['南湖区','秀洲区','平湖市'],
5 '温州':['九湾区','鹿城区','洞头区']
6 },
7 '江苏':
8 {
9 '南京':['鼓楼区','玄武区','秦淮区'],
10 '苏州':['姑苏区','吴中区','虎丘区'],
11 '常州':['武进区','金坛市','溧阳市']
12 }
13
14
15 }
16
17 >>> area['浙江']['杭州']
18 ['西湖区', '下城区', '萧山区']
19
20
21 >>> area['浙江']['杭州'][1] += ',很大'
22 >>> area['浙江']['杭州']
23 ['西湖区', '下城区,很大', '萧山区']
6.其他用法
1 >>> area.keys()
2 dict_keys(['浙江', '江苏']) # 返回字典中的所有keys,生成一个列表
3 >>> goods.values()
4 dict_values([6.0, 2.3, 12.0]) #返回字典中的所有values,生成一个列表
5 >>> goods.keys()
6 dict_keys(['grape', 'orange', 'watermelon'])
7
8 {'grape': 6.0, 'orange': 2.3, 'watermelon': 12.0}
9 >>> b = {1:2,3:4,'grape':4.5} # update()是把两个字典合并成一个新字典,中间有交叉的key,更新替换成新值,没有交叉就直接创建
10 >>> goods.update(b)
11 >>> goods
12 {1: 2, 3: 4, 'grape': 4.5, 'orange': 2.3, 'watermelon': 12.0}
13
14 >>> goods.items()
15 dict_items([(1, 2), (3, 4), ('grape', 4.5), ('orange', 2.3), ('watermelon', 12.0)])
7.setdefault(k,v)
不存在的key 就添加,存在就返回原值
fruits = {"apple":5.6,
"banana":4.5,
"peal":6.5,
"orange":4.3}
#设置不存在的key,则添加新值
fruits.setdefault("watermelon",8.8)
print(fruits)
#输出
{'banana': 4.5, 'orange': 4.3, 'apple': 5.6, 'peal': 6.5, 'watermelon': 8.8}
#设置存在的值,则 value还是原值
fruits.setdefault("apple",3.6)
print(fruits["apple"])
#输出
5.6
8.itmes()
把字典转换成列表
fruits = {"apple":5.6,
"banana":4.5,
"peal":6.5,
"orange":4.3}
print(fruits.items())
#输出
dict_items([('peal', 6.5), ('apple', 5.6), ('orange', 4.3), ('banana', |