python 中关于dict的总结
来源:互联网 发布:期货从业软件 编辑:程序博客网 时间:2024/05/01 21:54
python 关于dict的一些总结
总结了一些关于字典的小技巧或者注意的地方。
使用zip创建字典
创建字典有以下三种方法
dict(a=1, b=2, c=2)dict([(a,1), (b,2), (c,3)])dict({a:1, b:2, c:3})
推荐使用第二种方法结合zip创建
key = 'abcde'value = range(1, 6)dict(zip(key, value))
使用iteritems来遍历字典
d = dict(a=1, b=2, c=3)for k, v in d.iteritems(): print k, v# a 1# c 3# b 2
当然也可以使用items来遍历字典, 与之不同的是iteritems返回一个迭代器。
d = dict(a=1, b=2, c=3)for k, v in d.items(): print k, v# a 1# c 3# b 2
In [69]: d.iteritems()Out[69]: <dictionary-itemiterator at 0x3f216d8>In [70]: d.items()Out[70]: [('a', 1), ('c', 3), ('b', 2)]
使用get, pop来获取/删除key
首先,dict[key] 与 delete dict[key]也可以获取/删除key。但是key不存在时,会引发 KeyError 异常。为了避免引发异常可以使用get和带defaut参数的pop
- get(key[, default])
如果key在字典中,返回对应的value, 否则返回default。所以从来不会引发异常。 - pop(key[, default])
如果default未设置,则如果key不在字典中,删除key将引发异常。使用时加上default。
dict(dict1, **dict2)合并两个字典
合并两个字典可以先把两个字典分成key-value对,再连接两个key-value对,生成新的字典。即 dict(dict1.items()+dict2.items())
。不过效率有些低。
使用效率更高的 dict(dict1, **dict2)
连接两个字典。
In [29]: dict1Out[29]: {'a': 1, 'b': 2, 'c': 3}In [30]: dict2Out[30]: {'d': 4, 'e': 5, 'f': 6}In [31]: dict(dict1, **dict2)Out[31]: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
$ python -m timeit -s 'dict1=dict2=dict(a=1,b=2)' 'dict3=dict(dict1,**dict2)'1000000 loops, best of 3: 0.573 usec per loop$ python -m timeit -s 'dict1=dict2=dict(a=1,b=2)' 'dict3=dict(dict1.items()+dict2.items())'100000 loops, best of 3: 2.21 usec per loop
谨慎使用dict.copy()
dict.copy()是一个浅拷贝,当遇到字典或者列表时,将不能完全拷贝。使用copy模块的deepcopy()方法。
import copydict1 = {'a': [1, 2], 'b': 3}dict2 = dict1dict3 = dict1.copy()dict4 = copy.deepcopy(dict1)dict1['b'] = 'change'dict1['a'].append('change')print dict1 # {'a': [1, 2, 'change'], 'b': 'change'}print dict2 # {'a': [1, 2, 'change'], 'b': 'change'}print dict3 # {'a': [1, 2, 'change'], 'b': 3}print dict4 # {'a': [1, 2], 'b': 3}
0 0
- python 中关于dict的总结
- 关于python中dict的复习
- python中dict的用法 python中dict的用法
- python中dict的用法
- python中dict的用法
- python中dict的使用方法
- Python中dict的特点
- Python中Dict与Set对比总结
- Python中list、tuple、dict、set总结
- python关于dict的几个方法探讨
- 关于python dict()函数
- python dict 字典 总结
- python 中list dict tuple的比较
- Python中list和dict的复制
- python中遍历dict的value
- python类中实现dict的功能
- Python中dict与set的对比
- Python中list,tuple,dict的区别
- .net Enumerable类型的方法的一些理解
- ssm
- Servlet监听器(附带spring中监听器使用分析)
- activiti中的事件处理器(EventHandler)
- 通信系统建模与仿真 笔记1
- python 中关于dict的总结
- 高颜值的大数据报告 触手可得!
- ElasticSearch插件手动安装
- 位置无关码、位置有关码、链接地址、加载地址
- Juint测试类、测试集、测试运行器
- ide调用batch时启动以及传递参数
- KVO——使用过程中的陷阱
- mysql的连接查询
- 《数据结构和算法分析》具有O(logN)对数特点的三个基本算法