您的位置:首页 > 编程语言 > Python开发

python基础2--字典

2017-02-14 19:45 344 查看
字典

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

字典的每个键值(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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: