4.5. 字典
字典和列表一样,是python里面非常重要的一个基础数据结构,通俗的理解,字典就像其名一样,一个单词对应一个解释,如’a’:’我是小a’,’lvjj’:我是lvjj,字典对象里可以包含0个或多个键值对(key-value)
4.5.1. 定义一个字典
有两种方式可以定义字典:
d1 = {'name': 'lvjj'}
d2 = dict(name='lvjj')
print(d1)
print(d2)
输出为:
{'name': 'lvjj'}
{'name': 'lvjj'}
4.5.2. 添加元素
d1 = {}
d1['a'] = 1
print(d1)
d2 = {}
d2.update(b=2)
print(d2)
4.5.3. 取值
d1 = {'a': 1, 'b': 2}
print(d1['a'])
print(d1['c'])
输出为:
1
Traceback (most recent call last):
File "C:/Documents and Settings/Administrator/PycharmProjects/study/demo2.py", line 5, in <module>
print(d1['c'])
KeyError: 'c'
除了使用[]取值外,还可以使用get,并且设置默认值:
d1 = {'a': 1, 'b': 2}
print(d1.get('a'))
print(d1.get('c', 0))
输出为:
1
0
4.5.4. 取出字典的key到列表
d1 = {'a': 1, 'b': 2}
print(d1.keys())
输出为:
['a', 'b']
4.5.5. 取出字典的value到列表
d1 = {'a': 1, 'b': 2}
print(d1.values())
输出为:
[1, 2]
4.5.6. 取出字典的键值对为到列表
d1 = {'a': 1, 'b': 2}
print(d1.items())
输出为:
[('a', 1), ('b', 2)]
4.5.7. 遍历字典的键值对
d1 = {'a': 1, 'b': 2}
for k, v in d1.items():
print('key: %s, key: %s' % (k, v))
输出为:
key: a, key: 1
key: b, key: 2
4.5.8. 判断某个key是否在字典中
d1 = {'a': 1, 'b': 2}
print('a' in d1)
print('c' in d1)
输出为:
True
False
删除某个key:
d1 = {'a': 1, 'b': 2}
d1.pop('a')
print(d1)
- 输出为::
{‘b’: 2}
4.5.9. get()方法
dict.get(key, default=None)
key – 字典中要查找的键。 default – 如果指定键的值不存在时,返回该默认值。
dict_test = {'key1': 'v1'}
print('key1 = ', dict_test.get('key1', 'default_v'))
print('key2 = ', dict_test.get('key2', 'default_v'))
输出结果为:
key1 = v1
key2 = default_v
4.5.10. setdefault()方法
dict.setdefault(key, default=None)
key – 查找的键值。 default – 键不存在时,设置的默认键值。
与get不同的是,setdefault在没有找到key的时候,会将对于对于的key和default的值,加入到dict里
dict_test = {'key1': 'v1'}
print("key2 = ", dict_test.setdefault('key2', 'v2'))
print(dict_test)
输出结果为:
key2 = v2
{'key1': 'v1', 'key2': 'v2'}
4.5.11. update()方法
在执行 update() 方法时,如果被更新的字典中己包含对应的键值对,那么原value 会被覆盖;如果被更新的字典中不包含对应的键值对,则该键值对被添加进去。
dict_test = {'one': 1, 'two': 2, 'three': 3}
dict_test.update({'one':4.5, 'four': 9.3})
print(dict_test)
输出结果为:
{'one': 4.5, 'two': 2, 'three': 3, 'four': 9.3}