1、介绍
builtins.py文件中定义了dict类,用于处理python中字典数据。
list也是python的基本数据类型之一。
2、类
class dict(object):
def __init__(self, seq=None, **kwargs):
pass
3、字面量初始化
- 键必须是number、str和tuple这几种不可变类型,值可以是任意类型
- 相同的键只会存在一个有效,默认是后添加或声明会覆盖前者
a = {}
a1 = {12:"abc", "zz":[12,22]}
4、类初始化
b = dict()
b1 = dict([["a",12], {"b",22}, ("c",33)])
print(b1) #{'a': 12, 'b': 22, 'c': 33}
b2 = dict(a=12, b=22, c=33)
print(b2) #{'a': 12, 'b': 22, 'c': 33}
5、属性
6、方法
(1)update
update(self, __m, kwargs)
- 更新dict,如果键已经存在即更新,如果不存在则追加
d = {"a":12,"c":"15","b":"zf"}
print(d)# {'a': 12, 'c': '15', 'b': 'zf'}
d.update({"c":22,"d":"gg"})
print(d)# {'a': 12, 'c': 22, 'b': 'zf', 'd': 'gg'}
(2)get
get(self, key)
- key为必要参数,返回键对应的值
- 如果没有键,则返回None
- 隐藏的第二个参数,default可以用于设置当没有键时返回的值
(3)pop
pop(self, key)
- key为必要参数,返回键对应的值,并在dict中删除该键值对
- 如果没有该键,则报错:KeyError: ‘bc’
- 隐藏的第二个参数,default可以用于设置当没有键时返回的值
(4)copy
copy(self)
- 返回克隆对象,浅复制
- 对原dict的键进行值的克隆,对值进行地址克隆
- 对原dict直接进行元素的增删,以及改变键的内容或者改变值的对象,不影响克隆对象
- 但是直接对原dict的值的内部进行操作,会改变克隆对象
d = {"a":12,"c":[1,2],"b":"zf"}
d2 = d.copy()
d.get("c")[0]=55
print(d) # {'a': 12, 'c': [55, 2], 'b': 'zf'}
print(d2) # {'a': 12, 'c': [55, 2], 'b': 'zf'}
(5)clear
clear(self)
- 清除
(6)items
items(self)<class 'dict_items'>
- 返回类型是<class ‘dict_items’>
- 获取的是字典的键值对
d = {"a":12,"c":[1,2],"b":"zf"}
print(d.items()) # [('a', 12), ('c', [1, 2]), ('b', 'zf')]
(7)keys
keys(self)
d = {"a":12,"c":[1,2],"b":"zf"}
print(type(d.keys())) # <class 'dict_keys'>
print(d.keys()) # ['a', 'c', 'b']
- 获取字典的键
(8)values
values(self)
d = {"a":12,"c":[1,2],"b":"zf"}
print(type(d.values())) # <class 'dict_values'>
print(d.values()) #[12, [1, 2], 'zf']
- 获取字典的值
(9)popitem
popitem(self)
d = {"a":12,"c":[1,2],"b":"zf"}
print(d.popitem()) # ('b', 'zf')
print(d) # {'a': 12, 'c': [1, 2]}
- 获取最后一项键值对,类型是tuple
- 并将其从dict中移除
(10)setdefault
setdefault(self, __key, __default=None)
d = {"a":12,"c":[1,2],"b":"zf"}
print(d.setdefault("c","gg"))#[1, 2]
print(d)#{'a': 12, 'c': [1, 2], 'b': 'zf'}
print(d.setdefault("d","gg"))#gg
print(d)#{'a': 12, 'c': [1, 2], 'b': 'zf', 'd': 'gg'}
- 如果__key在dict中存在,返回__key在dict中作为键对应的值,不对dict做任何动作
- 如果__key在dict中不存在,对dict增加{__key:__default},并返回__default
- __default为非必要参数,默认值为None
(11)fromkeys
fromkeys(self, __iterable)
d = {"a":12,"c":[1,2],"b":"zf"}
print(d.fromkeys([12,22],0)) #{12: 0, 22: 0}
print(d)#{'a': 12, 'c': [1, 2], 'b': 'zf'}
- 该方法与调用对象无关,用于创建一个dcit返回,键是第一个迭代器参数的元素,各键的值都为第二个参数