为什么在Python中不能统一处理集合?
集合和列表在 Python中的处理方式不同,似乎没有统一的方法可以同时使用它们.例如,使用add方法将项添加到集合中,对于列表,使用append方法完成.我知道这背后有不同的语义,但也存在常见的语义,并且通常与某些集合一起使用的算法更多地关注共性而不是差异. C STL表明这可以工作,为什么Python中没有这样的概念? 编辑:在C中,我可以使用 解决方法直接回答:这是一个设计缺陷.您应该能够使用相同的方法名称插入任何通用插入有意义的容器(例如,排除dict).插入应该有一致的通用名称,例如.添加,对应于set.add和list.append,这样您就可以添加到容器中而无需关心插入的内容. 在不同类型中对此操作使用不同的名称是无偿的不一致,并且设置了较差的基本标准:库应该鼓励用户容器使用一致的API,而不是为每个基本容器提供大部分不兼容的API. 也就是说,在这种情况下,它通常不是一个实际问题:大多数情况下,函数的结果是项目列表,将其实现为生成器.它们允许一致地(从函数的角度)处理这两者,以及其他形式的迭代: def foo(): yield 1 yield 2 yield 3 s = set(foo()) l = list(foo()) results1 = [i*2 for i in foo()] results2 = (i*2 for i in foo()) for r in foo(): print r (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python – plotly.offline.iplot给出一个大的空白字段作为输
- python – Scipy稀疏 – 距离矩阵(Scikit或Scipy)
- python – pandas:用loc迭代DataFrame索引
- python – 具有超类类名称的子类变量
- Python / Scipy – 将optimize.curve_fit的sigma实现到opti
- Django 1.10中有哪些django.core.context_processors.reque
- django-forms – 如何使用modelformset_factory创建一个空的
- python – 如何访问`pip –user`安装的软件包?
- python – 如何在mac中安装setuptools
- python – 如何使我的SWIG扩展模块与Pickle工作?