【python】dict的注意事项
2016-08-18 18:39
411 查看
1. key不能用list和set
由于列表是易变的,故不可做key。如果使用会报错
但是元组可以做key
2.遍历方法
速度快,但是如果要删除元素会导致错误,出错情况如下
如果需要删除字典元素,一定要用.keys(),缺点是速度慢很多
由于列表是易变的,故不可做key。如果使用会报错
但是元组可以做key
2.遍历方法
for key in somedict: pass
速度快,但是如果要删除元素会导致错误,出错情况如下
#这里初始化一个dict >>> d = {'a':1, 'b':0, 'c':1, 'd':0} #本意是遍历dict,发现元素的值是0的话,就删掉 >>> for k in d: ... if d[k] == 0: ... del(d[k]) ... Traceback (most recent call last): File "<stdin>", line 1, in <module> RuntimeError: dictionary changed size during iteration #结果抛出异常了,两个0的元素,也只删掉一个。 >>> d {'a': 1, 'c': 1, 'd': 0} >>> d = {'a':1, 'b':0, 'c':1, 'd':0} #d.keys() 是一个下标的数组 >>> d.keys() ['a', 'c', 'b', 'd'] #这样遍历,就没问题了,因为其实其实这里遍历的是d.keys()这个list常量。 >>> for k in d.keys(): ... if d[k] == 0: ... del(d[k]) ... >>> d {'a': 1, 'c': 1} #结果也是对的 >>>
如果需要删除字典元素,一定要用.keys(),缺点是速度慢很多
相关文章推荐
- Python【基础:数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set】注意事项(与java,c比较)
- Python 字典(dict)细节及注意事项
- python3之import和reload的使用注意事项
- boost.python和python-dev的ubuntu 8.10下的安装,版本以及注意事项(7)
- 【python】crontab调用python的注意事项
- python的httplib注意事项
- 一些 python 插件 编译安装的注意事项
- Python语言中的注意事项
- python threadpool使用注意事项
- linux环境下的mysql-python使用注意事项
- boost.python vector_indexing_suite 使用注意事项
- python 在函数中使用全局变量的注意事项
- PYTHON+APACHE的方法及注意事项
- 使用python的flask新建一个简单的站点前做的注意事项
- IronPython for ASP.NET 部署注意事项
- python3之IDLE使用注意事项
- 在Windows里搭建Python的GTK+环境搭建注意事项
- IronPython for ASP.NET 部署注意事项
- python的httplib注意事项
- python的httplib注意事项