创建字典
Python有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建 函数dict
info = {}
info = dict()
初始化字典
Python可以在创建字典的时候初始化字典
info = {"name" : 'cold'}
info = dict(name = 'cold') # 更优雅
很明显第二种方法更加的优雅和减少一些特殊字符的输入,但是有种情况第二种不能胜任
key = 'name'
info = { key :'cold'} # {'name':'cold'}
print(info) #{'name': 'cold'}
info = dict(key = 'cold') # {'key': 'cold'}
print(info) #出错了 {'key': 'cold'}
#明显第二种方法就会引发一个不容易找到的bug
Python字典还有一种初始化方式,就是使用字典的fromkeys方法可以从列表中获取元素作为键并用None或fromkeys方法的第二个参数初始化
info = {}.fromkeys(['name', 'blog'])
print(info)
{'blog': None, 'name': None}
info = dict().fromkeys(['name', 'blog'])
print(info)
{'blog': None, 'name': None}
info = dict().fromkeys(['name', 'blog'], 'luckycyong.com')
print(info)
{'blog': 'luckycyong.com', 'name': 'luckycyong.com'}
获取键值
两种方法
- 中括号
info = {'name':'cold', 'blog':'luckycyong.com'}
info['name']
'cold'
- get 方法
info = dict(name= 'cold', blog='www.luckycyong.com')
info.get('name')
'cold'
info.get('blogname') #无此键,不会报错,返回None
None
info.get('blogname', 'luckycyong') #给的默认值
'luckycyong'
两者不同,get方法中无此键,不会报错,返回None,方括号会报错
更新/添加
Python 字典可以使用键作为索引来访问/更新/添加值
info = dict()
info['name'] = 'cold'
info['blog'] = 'luckycyong.com'
print(info)
{'blog': 'luckycyong.com', 'name': 'cold'}
{'blog': 'luckycyong.com', 'name': 'cold night'}
info = dict(name='cold', blog='luckycyong.com')
info.update({'name':'cold night', 'blogname':'luckycyong'})
print(info)
{'blog': 'luckycyong.com', 'name': 'cold night', 'blogname': 'luckycyong'}
##键值方法
info.update(name='hot', blog='www.luckycyong.com') # 更优雅
print(info)
{'blog': 'www.luckycyong.com', 'blogname': 'luckycyong', 'name': 'hot'}
Python字典的update方法可以使用一个字典来更新字典,也可以使用参数传递类似dict函数一样的方式更新一个字典,上面代码中哦功能的第二个更加优雅,但是同样和dict函数类似,键是变量时也只取字面值
字典删除
可以调用Python内置关键字 del 来删除一个键值
info={'blogname': 'luckycyong', 'blog': 'www.luckycyong.com', 'name': 'hot'}
del info['name']
print(info)
{'blogname': 'luckycyong', 'blog': 'www.luckycyong.com'}
同时也可以使用字典的 pop 方法来取出一个键值,并删除
info = dict(name='cold', blog='luckycyong.com')
info.pop('name')
'cold'
print(info)
{'blog': 'luckycyong.com'}
获取所有key
info = dict(name='cold', blog='luckycyong.com')
info.keys()
dict_keys(['blog', 'blogname'])
获取所有value
info = dict(name='cold', blog='luckycyong.com')
info.values()
dict_values(['www.luckycyong.com', 'luckycyong'])
获取key,value并循环
info = dict(name='cold', blog='luckycyong.com')
for key, value in info.items():
print( key, value )
name cold
blog luckycyong.com
字典遍历操作
- 遍历字典的键key
d={'list':[1, 2, 3],1:123,'111':'python3','tuple':(4, 5, 6)}
for key in d: #默认的键
print(key)
tuple
1
111
list
d={'list':[1, 2, 3],1:123,'111':'python3','tuple':(4, 5, 6)}
for key in d.keys():
print(key)
1
list
111
tuple
- 遍历字典的值value、
>>> d={'list':[1, 2, 3],1:123,'111':'python3','tuple':(4, 5, 6)}
>>> for value in d.values():
print (value)
[1, 2, 3]
123
python3
(4, 5, 6)
- 遍历字典的项
>>> d={'list':[1, 2, 3],1:123,'111':'python3','tuple':(4, 5, 6)}
>>> for item in d.items():
print(item)
('list', [1, 2, 3])
(1, 123)
('111', 'python3')
('tuple', (4, 5, 6))
- 遍历字典的key-value
>>> d={'list':[1, 2, 3],1:123,'111':'python3','tuple':(4, 5, 6)}
>>> for key,value in d.items():
print(key,value)
list [1, 2, 3]
1 123
111 python3
tuple (4, 5, 6)
>>> d={'list':[1, 2, 3],1:123,'111':'python3','tuple':(4, 5, 6)}
>>> for (key,value) in d.items():
print(key,value)
list [1, 2, 3]
1 123
111 python3
tuple (4, 5, 6)