字典dict
1、字典的定义
字典是一个可变序列,以键值对的方式存储数据,字典是一个无序的序列。
Python
语言中的字典使用大括号{ }
建立,每个元素是一个键值对。
字典的创建方式:
-
使用
{ }
花括号scores = {'张三': 29, '李四': 10, '王五': 40} print(scores) # {'张三': 29, '李四': 10, '王五': 40} print(type(scores)) # <class 'dict'>
-
使用内置函数
dict()
dic = dict(name='张三', age=20) print(dic) # {'name': '张三', 'age': 20}
-
创建空字典
d = {} print(d) # {}
2、字典的特点
- 键
key
不可以重复,值value
可以重复 - 字典中元素是无序的
- 字典会浪费大的内存,是一种使用空间换时间的数据结构,但是查询速度快。
3、字典元素的获取(查找)
根据键key
获取字典的值value
# 1.使用 [] 获取
scores = {'张三': 29, '李四': 10, '王五': 40}
print('张三' in scores) # True
print('张三' not in scores) # False
print(scores['张三']) # 29
# 2.使用 get()方法
print(scores.get('张三')) # 29
print(scores.get('柽柳')) # None
print(scores.get('麻子', 99)) # 99是在查找 麻子值的(value)不存在时的一个默认值
4、字典元素的增删改
# 字典的新增与修改
dict2 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
dict2['D'] = 'duck' # 如果字典中没有这个键,则新增键值对
dict2['C'] = 'cat' # 如果字典中有这个键,则修改键值对
print(dict2)
# 字典的删除
del dict2['A']
dict2.pop('B')
print(dict2) # {'C': 'cat', 'D': 'duck'}
# 清空字典
dict2.clear() # 清空字典中的内容,内存中的地址不变
print(dict2) # {}
5、字典元素的获取与遍历
-
获取所有的键,
<字典对象名>.keys()
方法 返回值为列表# 获取所有的键 .keys()方法 返回值为列表 scores = {'张三': 29, '李四': 10, '王五': 40} print(scores.keys()) # dict_keys(['张三', '李四', '王五']) print(type(scores.keys())) # <class 'dict_keys'> print(list(scores.keys())) # ['张三', '李四', '王五'] # 遍历键 for i in scores.keys(): print(i)
-
获取所有的值,
<字典对象名>.value()
方法,返回值为列表scores = {'张三': 29, '李四': 10, '王五': 40} dict_values = scores.values() print(dict_values) # dict_values([29, 10, 40]) print(type(dict_values)) # <class 'dict_values'> print(list(dict_values)) # [29, 10, 40] # 遍历值 for j in scores.values(): print(j)
-
获取所有的键值对,
<字典对象名>.items()
方法 返回值为元组# 获取所有的键值对 返回值为元组 scores = {'张三': 29, '李四': 10, '王五': 40} print(scores.items()) # dict_items([('张三', 29), ('李四', 10), ('王五', 40)]) # 遍历键值对 for a in scores.items(): print(a)