字典
特点
- 以键值对的方式存储数据
- 键只能用不可变类型(能hash的类型),值可以使用任意任意数据类型
- 无序
- 长度和值都可改变
一般方法
- 遍历
items(self)
取键值对,返回的是列表包裹的元祖
>>> dict1 = {"k1":1,"k2":"sss",3:[1, 2]}
>>> for item in dict1.items():
print(item)
('k2', 'sss')
(3, [1, 2])
('k1', 1)
>>> for k,v in dict1.items():
print(k,v)
k2 sss
3 [1, 2]
k1 1
keys(self)
取键的值,返回的是列表
values(self)
取每个值,返回的是列表
魔法方法
建立
- 使用{}进行包裹
dict(**kwarg)
dict(mapping, **kwarg)
dict(iterable, **kwarg)
>>>dict() # 创建空字典
{}
>>> dict(a='a', b='b', t='t') # 传入关键字
{'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>>
dict.fromkeys(*args, **kwargs)
对指定的可迭代对象和值建立字典,值如果不指定,则值会返回None。
>>> dict.fromkeys(["1",2,"a"],"2")
{2: '2', 'a': '2', '1': '2'}
增加
setdefault(self, k, d=None)
指定一个key值,若key存在则返回响应的value值,若不存在,则会添加一个k:d键值对儿,若d不指定则返回None。update(self, E=None, **F)
可以传入有键值对的数据类型,或者传入指定的对应的数据参数。若传入的键已经存在则会自动更新相应的value值
#传入字典数据类型
>>> dict1 = { "k1":1,"k2":2 }
>>> dict2 = { "k3":3 }
>>> dict1.update(dict2)
>>> dict1
{'k2': 2, 'k1': 1, 'k3': 3}
#传入对应的参数
>>> dict1.update(k4=5)
>>> dict1
{'k2': 2, 'k1': 1, 'k4': 5, 'k3': 4}
- 使用dict[key]=value的方式添加单个键值对
删除
pop(self, k, d=None)
指定key的值进行弹出,若指定的key不存在,则会获取d的值,若d没有指定,则会产生KeyError的错误。popitem(self)
随机弹出一个键值对,以元祖的形式返回。clear(self)
查询
get(self, k, d=None)
根据指定的key值获得value值,若指定的key不存在,则会获得d的值,若是d没有指定,则返回None。- 使用dict[key]的方式,若key不存在则会报错,因此建议使用get方法。
其他
copy(self)
浅拷贝