谭子python学习笔记--字典

xiaoxiao2021-02-28  109

字典 常用列表操作字典使用注意事项创建字典的方法字典解析

字典

通过键而不是偏移量来读取任意对象的无序集合可变长,异构,任意嵌套属于可变的映射类型对象引用表(散列表即哈希表)

常用列表操作

操作解释备注D = {}空字典D = {‘spam’:2,’eggs’:3}两项目字典D = {‘food’:{‘ham’:1,’egg’:2}}嵌套D = dict.fromkeys([‘a’,’b’])构造字典,键值为列表[‘a’,’b’]中的值D = dict.fromkeys([‘a’,’b’]) print D结果为{‘a’: None, ‘b’: None}D[‘egg’]D[‘egg’][‘ham’]以键作为索引运算‘eggs’ in D成员关系,存在测试D.keys()键D.values()值D.items键+值D.copy()副本D.get(key)获取键key的值,当key不存在时返回默认值NoneD.update(D2)组合d1 = {‘1’:’www’,’2’:’eee’} d2 = {‘3’:’ccc’,’4’:’vff’}d1.update(d2) print d1结果{‘1’: ‘www’, ‘3’: ‘ccc’, ‘2’: ‘eee’, ‘4’: ‘vff’}D.pop(key)返回键key的值,并删除len(D)长度D[key] = value新增/修改键set(D.keys())字典键集合set(D1.keys()) & set(D2.keys())D1和D2相同键列表d1 = {‘1’:’www’,’2’:’eee’}d2 = {‘3’:’ccc’,’4’:’vff’}d1.update(d2)print d1print set(d1.keys())print set(d1.keys()) & set(d2.keys())结果{‘1’: ‘www’, ‘3’: ‘ccc’, ‘2’: ‘eee’, ‘4’: ‘vff’}set([‘1’, ‘3’, ‘2’, ‘4’])set([‘3’, ‘4’])D={x:x*2 for x in range(10)}字典解析(python3.0)D={x:x*2 for x in range(10)}print D{0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16, 9: 18}

字典使用注意事项

序列运算无效对新索引赋值会新增该项键不一定总是字符串(可以是整形、元组、类实例等) d = {} d[99] = "hell0"

用于稀疏数据结构

>>> Matrix ={} >>> Matrix[(2,3,4)] = 88 >>> Matrix[(7,8,9)] = 99 >>> Matrix {(2, 3, 4): 88, (7, 8, 9): 99} >>> x=2;y=3;z=4 >>> Matrix[(x,y,z)] 88

创建字典的方法

>>> {'name':'mel','age':45} {'age': 45, 'name': 'mel'} >>> D={} >>> D['name'] = 'mel' >>> D['age'] = 45 >>> D {'age': 45, 'name': 'mel'} >>> dict(name='mel',age=45) {'age': 45, 'name': 'mel'} >>> dict([('name','mel'),('age',45)]) {'age': 45, 'name': 'mel'} >>> dict.fromkeys(['a','b'],'lala') {'a': 'lala', 'b': 'lala'}

字典解析

>>> D={k:v for (k,v) in zip(['a','b','c'],[1,2,3])} >>> D {'a': 1, 'c': 3, 'b': 2} >>> D = {c.lower():c + '!' for c in ['SPAM','ENGS','HAM']} >>> D {'engs': 'ENGS!', 'ham': 'HAM!', 'spam': 'SPAM!'}
转载请注明原文地址: https://www.6miu.com/read-61428.html

最新回复(0)