python基础2--字典

字典


字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

语法:

1 goods = {
2     'apple':4.5,
3     'orange':2.3,
4     'banana':3.5
5      }

字典的特性:

  • dict是无序的
  • key必须是唯一的

 

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', 4.5)])

  

9.遍历字典

1 for key in goods:
2     print(key,goods[key])
3 #或
4 for k,v in goods.items():
5     print(k,v)

 

posted @ 2017-02-14 19:45  Bigberg  阅读(530)  评论(0编辑  收藏  举报