字典进阶
基本字典操作
(1)len(d)返回d中项(键-值对)的数量;
(2)d[k]返回关联到k上的值;
(3)d[k]=v将值v关联到键k上;
(4)del d[k]删除键为k的项;
(5)k in d检查d中是否有含键为k的项;
keys方法将字典中的键以列表形式返回
pop方法用来获得对应给定键的值
setdefault方法在某种程度上类似于get方法,就是能够获得与给定键相关联的值,还能在字典中不含有给定键的情况下设定相应的键值。
update方法可以利用一个字典项更新另一个字典。提供的字典项会被添加到旧的字典中,若有相同的键则会进行覆盖
values方法以列表的形式返回字典中的值(itervalues返回值的迭代器),与返回键的列表不同的是,返回值列表中可以包含重复的元素。
映射类型数据结构介绍
在 Python 中 字典通常被称为 dict,键 称为 key,值称为 value
字典(dict)的值时成对出现的,包括key和value.value可以重复,但是keys不能重复.
字典的key通常为字符串
其实是不可变的数据类型就可以
布尔型 True 1 False 0,整型 100 200,浮点型 1.0 3.415,元组 (1,) (1, 2, 3),字符串 'host_name'
d1 = {}
d2 = {'name'.'111'}
In [14]: d_tpl = [('a','1'),('b','2'),('c','3')]
In [15]: dict3 = dict(d_tpl)
In [17]: d_tpl2 = ['a1','b2','c3']
In [18]: dict4 = dict(d_tpl2)
In [21]: dict3 is dict4
Out[21]: False
In [22]: dict3 == dict4
Out[22]: True
zip并行迭代 将两个列表转化为字典。
a1 = ['1','2','3','4','5']
a2 = ['a','b','c','d','e']
t1=[1,2,3,4,5]
t2=['a','b','c','d','e']
dic=dict(zip(t2,t1))
print(dic)
dict_obj = {'a': 1, 'b': 2}
dict_obj['a'] # key 必须存在,不存在,抛出异常
dict_obj.get('a') # 获取到 'a' 对应的值(value)
dict_obj.get('c') # key 不存在字典中,则返回 None
dict_obj.get('c', '5') # key 不存在,返回指定的 value
l1 = [('qwe','asd','qaz'),('qsc',12),(23,)]
for item in l1:
*_,n = item
if type(n) is int :
lt = list(item)
lt.remove(lt[-1])
idx = l1.index(item)
l1[idx] = tuple(lt)
print(l1)
[('qwe', 'asd', 'qaz'), ('qsc',), ()]
info_dict = {"name": 'yangge', 'age': 18}
d_keys = info_dict.keys()
print(d_keys)
info_dict = {"name": 'yangge', 'age': 18}
d_vals = info_dict.values()
print(d_vals)
info_dict = {"name": 'yangge', 'age': 18} 这三个的值都是列表被封装,不具有列表的方法,但是
item = info_dict.items() 都可以被迭代
print(item)
update更新字典
In [59]: d5
Out[59]: {'a': 1, 'b': 2, 'li': [1, 3, 5]}
In [60]: d6 = {'a': 2,'d': 2,'e': 5}
In [61]: d5.update(d6)
In [62]: d5 功能与 = 相近,但是主要用途在于合并字典
Out[62]: {'a': 2, 'b': 2, 'd': 2, 'e': 5, 'li': [1, 3, 5]}
x = {'a': 1, 'b':2} 若y = {'a': 3, 'd':2} 得到{'a': 3, 'b': 2, 'd': 2}
y = {'c': 3, 'd':2}
z= {**x,**y} 将两个字典合并
print(z) 得到{'a': 1, 'b': 2, 'c': 3, 'd': 2}
删除与请空字典
dict_obj = {'a': 1}
del dict_obj['a'] 从字典中删除指定 key 的键值对
del dict_obj 删除字典本身,字典自身就不存在于内存中了
dict_obj={}
dict_obj.clear() 字典本身还在内存中,只是内容没了
pop方法
In [49]: d6 = {'b': 2, 'c': '3', 'd': 'new key', 'li': [1, 3, 5]}
In [50]: li = d6.pop('li')
In [51]: print(li)
Out [51]: [1, 3, 5]
item = d6.popitem() 返回pop删除的key和values
print(item)
print(d6)
('li', [1, 3, 5])
{'b': 2, 'c': '3', 'd': 'new key'}
网友评论