Python标准数据类型-字典
字典
- 字典可存储任意类型对象,字典是由大括号{}括起来的数据集合。
- 里面有键和值,组成键值对(key=>value),键和值之间用冒号:来分隔,每个键值对之间用逗号来分隔。
- 通过键来读取,而不是通过索引。
- 字典是任意对象的无序集合。
- 字典是可变的,并且可以任意嵌套。
- 字典中的键必须唯一,字典中的键必须不可变。
字典的创建
{}创建字典
- 使用大括号 { } 创建字典
- {key1:value1, key2:value2…}
dict1 = {'dog':'WangChai','num':{"a":1, "b":2}}
使用内建函数 dict() 创建字典
- dict1 = dict(a=1, b=2, c=3) # {'a': 1, 'b': 2, 'c': 3}
- dict1 = dict(zip(['a', 'b', 'c'], [1, 2, 3])) # 映射函数方式来构造字典
- dict1 = dict([('a', 1), ('b', 2), ('c', 3)]) # 可迭代对象方式来构造字典
- dict1 = dict([('a', 1), ('b', 2)], c=3)
字典推导式创建字典
字典推导式
dict1={chr(ord("a")+i): i for i in range(5)}
result:
{'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
字典的访问
- 把相应的键放入到方括号中, dict[key]
- 如果用字典里没有的键访问,报错
- for item in dict.keys(), for value in dict.values(), for key, value in dict.items():
字典增加元素
- dict[key]=value, key值不存在时,增加此元素,否则改变此元素。
- dict1.update(dict2)
dict1 = dict(a=1, b=2, c=3); dict2 = {"a":4, "b":5, "d":7}
print(dict1)
result:
{'a': 4, 'b': 5, 'c': 3, 'd': 7}
删除字典元素
- dict.pop(key):删除以key为键的键值对,返回key对应的value
- dict1.popitem():随机删除键值对,返回值则为删除的这组键值对
- dict1.clear():删除所有元素
- del dict1:删除字典
字典的方法和系统函数
方法 | 描述 | 举例 |
---|---|---|
dict.copy() | 返回一个字典的浅复制 | |
dict.fromkeys(seq[, value]) | 创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值 | dict.fromkeys(“abc”,0) => {‘a’: 0, ‘b’: 0, ‘c’: 0} |
dict.get(key, default=None) | 返回key对应的值,如果没有此key,则返回default的值 | dict1={“a”:1, “b”:2};dict1.get(“c”, 5) => 5 |
dict.items() | 返回可迭代对象,里面是列表 | dict1={“a”:1, “b”:2}; dict1.items() => dict_items([(‘a’, 1), (‘b’, 2)]) |
dict.keys() | 返回可迭代对象,列表 | dict1={“a”:1, “b”:2};dict1.keys => dict_keys([‘a’, ‘b’]) |
dict.values() | 返回可迭代对象,列表 | dict1={“a”:1, “b”:2};dict1.values=>dict_values([1, 2]) |
dict.setdefault(key, default=None) | 如果key不存在,插入以key,default值为value的键值对 |