创建字典
dictionary={key1:value1, key2:value2, …, keyn:valuen}
#空字典
dictionary={}
字典中的键必须独一无二
键必须是不可变的(所以字典的键不能是字典或者列表)
如果创建字典时,一个键被赋值了两次,以最后一个为准
通过动态值创建字典
#先创建空字典
my_dict = {}
name = ‘abc'
age = 21
location = 'Liaoning'
my_dict['Name'] = name
my_dict['Age'] = age
my_dict['Location'] = location
用在一些事先不知道返回结果的场景中
比如:服务器返回数据
当获得这些数据之后,逐一向字典内添加
通过系统dict()的方法
my_dict = dict(name='abc', age=21, location='Laoning' )
键必须是字符串
dict()方法是一个动态参数的方法,不会限制传入的类型和个数
会以变量名去充当键值对应的键
以变量的值充当键值对应的值
通过dict + 键值元素表
my_dict = dict([('name', 'abc'), ('age', 21), ('location', 'Liaoning')])
利用一个List,列表内的元素都是包含两个元素的元组
元组内第一个为键,第二个为键值
zip方法
keys = ['a', 'b', 'c', 'd']
values = [1, 2, 3, 4]
#将已有的两组数据打包创建新的字典
dictionary = dict(zip(keys, values))
fromkeys方法
Dict = dict.fromkeys(['name', 'age', 'sex'])
#以给定内容为键,键值都为空
Dict
{'age': None, 'name': None, 'sex': None}
字典的访问
通过key值索引,获得对应value值
value=dict[key]
添加 修改
dict['x']='value'
若x不在字典中,则添加
若x在字典中,则修改
删除
#删除键为x的一项
del dict['x']
#情空字典
dict.clear()
del dict
update()方法
可以一次性的添加或者修改当前字典
如果存在不同的键,则添加
存在相同的键,则更新
aDict = {'age': 37, 'score': [98, 97], 'name': 'Dong', 'sex': 'male'}
aDict.update({'a':97, 'age':39})
{'score': [98, 97], 'sex': 'male', 'a': 97, 'age': 39, 'name': 'Dong'}
字典的操作方法
dic = {'a':0,'b':1,'c':2}
dic.items()
#dict_items([('a', 0), ('b', 1), ('c', 2)])
dic.keys()
#dict_keys(['a','b','c'])
dic.values()
#dict_values([0,1,2])
dic.get('a')
#0
dic.pop('a')
#删除以a,并返回a对应的值
items keys values 都返回视图
视图链接原始的字典
所以如果字典发生变化,视图也会对应变化
get()方法
#如果字典中存在该键则返回对应键值
aDict.get('age')
#21
#指定的键不存在时返回指定的默认值
aDict.get('address', 'Not Exists.')
'Not Exists.'
dic.popitem()
删除字典中的某个键值对,并返回该键值对
一般是尾部,但是具体预先不知道
当不在乎字典元素的顺序时,此函数适用
字典的遍历
遍历key值
dictA:{'a': '1', 'b': '2', 'c': '3'}
for k in dictA:
print(k+':'+ dictA[k])
#或者
for k in dictA.keys()
#a:1
#b:2
#c:3
遍历value值
dictA:{'a': '1', 'b': '2', 'c': '3'}
for v in dictA.values():
print(v)
1
2
3
for v in dictA:
print(v)
a
b
c
遍历字典项
dictA:{'a': '1', 'b': '2', 'c': '3'}
for kv in dictA.items():
print(kv)
#输出元组
('a', '1')
('b', '2')
('c', '3')
遍历字典键值
dictA:{'a': '1', 'b': '2', 'c': '3'}
for k,v in dictA.items():
print(k+':'+v)
#或者
for (k,v) in dictA.items()
print(k+':'+v)
a:1
b:2
c:3
字典的排序
sorted()
sorted(iterable,key,reverse)
#按照key排序
sorted(dict.items(),key=lambda d:d[0])
#按照value排序
sorted(dict.items(),key=lambda d:d[1])
lambda,匿名函数
用来表述内部只包含一行表达式的函数