为什么在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 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |