python字典

字典(映射)

一,创建字典

  1. 使用{键:值}创建字典
In [122]: grade = {'a':85,'b':96,'c':78}

In [123]: grade
Out[123]: {'a': 85, 'b': 96, 'c': 78}
  1. 使用字典()强制转换
In [124]: grade = dict([('a',83),('b',95)])

In [125]: grade
Out[125]: {'a': 83, 'b': 95}

二,字典基本操作

  1. 返回字典包含键值对数
In [125]: grade
Out[125]: {'a': 83, 'b': 95}

In [126]: len(grade)
Out[126]: 2
  1. 返回与键关联的值
In [125]: grade
Out[125]: {'a': 83, 'b': 95}
In [127]: grade['b']
Out[127]: 95
  1. 将值关联到键上
In [125]: grade
Out[125]: {'a': 83, 'b': 95}

In [128]: grade['b']=56

In [129]: grade
Out[129]: {'a': 83, 'b': 56}
  1. 删除指定的键
In [129]: grade
Out[129]: {'a': 83, 'b': 56}

In [130]: del grade['b']

In [131]: grade
Out[131]: {'a': 83}
  1. 检查键是否在字典中
In [132]: grade = {'a':85,'b':96,'c':78}
In [135]: 'd' in grade
Out[135]: False

In [136]: 'c' in grade
Out[136]: True

三,使用DIR(字典)查看字典方法

In [137]: dir(dict)
Out[137]:
[
 'clear',
 'copy',
 'fromkeys',
 'get',
 'items',
 'keys',
 'pop',
 'popitem',
 'setdefault',
 'update',
 'values']

四,字典方法

  1. 明确清空字典
In [138]: grade = {'a':85,'b':96,'c':78}

In [139]: grade.clear()

In [140]: grade
Out[140]: {}
  1. 复制浅复制
#赋值操作将变量名grade1关联到grade,没有产生副本,改变字典内容,都发生改变
In [156]: grade
Out[156]: {'a': 5, 'b': 96, 'c': 78, 'd': 82, 'e': 86}

In [157]: grade1 = grade

In [158]: grade['a'] = 85

In [159]: grade1
Out[159]: {'a': 85, 'b': 96, 'c': 78, 'd': 82, 'e': 86}
#copy操作,产生一个新字典,对应的键,当替换副本中的值时,原字典不受影响。
#当修改字典中的值,如列表中值,原字典受影响。此为浅拷贝。
#产生这种问题是因为,字典中的值是可变对象,改变其内容并不能改变键与列表的关联关系。
In [167]: grade = {'a':85,'b':93,'c':[56,78,90]}

In [168]: grade
Out[168]: {'a': 85, 'b': 93, 'c': [56, 78, 90]}

In [169]: grade2 = grade.copy()

In [170]: grade2['a'] = 5

In [171]: grade2['c'][1] = 100

In [172]: grade
Out[172]: {'a': 85, 'b': 93, 'c': [56, 100, 90]}

In [173]: grade2
Out[173]: {'a': 5, 'b': 93, 'c': [56, 100, 90]}

为避免这种问题,可以使用深拷贝,及拷贝值及其所包含的所有值。
In [177]: from copy import deepcopy

In [178]: grade = {'a':85,'b':93,'c':[56,78,90]}

In [180]: grade3 = deepcopy(grade)

In [181]: grade3['c'][1] = 100

In [182]: grade
Out[182]: {'a': 85, 'b': 93, 'c': [56, 78, 90]}

In [183]: grade3
Out[183]: {'a': 85, 'b': 93, 'c': [56, 100, 90]}
  1. fromkeys返回一个新字典,第一个参数是一个键序列,第二个参数是一个值
In [2]: dict.fromkeys(['a','b','c'],80)
Out[2]: {'a': 80, 'b': 80, 'c': 80}
  1. 获得返回查找键的值,当指定键不存在时返回无
In [5]: dic = dict.fromkeys(['a','b','c'],90)

In [6]: dic
Out[6]: {'a': 90, 'b': 90, 'c': 90}

In [7]: dic.get('a')
Out[7]: 90

In [8]: dic.get('d')
  1. 项目返回一个包含所有字典键值对的列表
In [6]: dic
Out[6In [11]: dic.items()
Out[11]: dict_items([('a', 90), ('b', 90), ('c', 90)])
  1. 键返回包含字典中所有键的列表
In [6]: dic
Out[6]: {'a': 90, 'b': 90, 'c': 90}
In [12]: dic.keys()
Out[12]: dict_keys(['a', 'b', 'c'])
  1. 弹出返回字典中键的值,并删除这个键值对
In [13]: dic.pop('c')
Out[13]: 90

In [14]: dic
Out[14]: {'a': 90, 'b': 90}
  1. 值返回字典中值的列表
In [15]: dic = dict.fromkeys(['a','b','c'],90)

In [16]: dic.values()
Out[16]: dict_values([90, 90, 90])
  1. 更新使用一个字典更新另一个字典,如果有相同的键将替换原字典的值,如果没有则加入原字典。
In [17]: dic.update({'d':86,'e':75})

In [18]: dic
Out[18]: {'a': 90, 'b': 90, 'c': 90, 'd': 86, 'e': 75}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值