
1 reus 2012-08-21 18:13:41 +08:00 四种都会常用到的,说不上先进吧,取向不同而已 array只是就是list和dict合体 |
2 mikale 2012-08-21 18:22:16 +08:00 这是编程风格问题....没有先进和不先进之分.. 语言只有高明之分,并无先进淘汰落后这种进化论分法 |
3 ljbha007 2012-08-21 18:23:16 +08:00 能想到的优点就是tuple可以用来返回多个值,比如 (x,y) = getCoords() |
4 reus 2012-08-21 18:26:08 +08:00 php也可以: list($x, $y) = getCoords() py的话括号不是必须的,写成: x, y = getcoords() 就行 |
5 bhuztez 2012-08-21 18:36:27 +08:00 Python不止四种数据结构吧, 基本的就有bytearray/dict/frozenset/list/set/tuple了,算上标准库,还有collections.namedtuple, collections.defaultdict, collections.deque, collections.OrderedDict, array.array。 |
6 keakon 2012-08-21 18:44:52 +08:00 4种数据结构确实都不可替代且经常使用。你能举个谁是多余的例子么… 另外,方便这点算不算优点呢? [i * i for i in xrange(10)] ([0] * 100)[10:20] |
7 pyKun 2012-08-21 18:46:12 +08:00 个人理解: 1.数据类型的细化有利于精细的编程,tuple可以简单明了的告诉读者这个变量在运行时不可变(某些条件下也事可变的。。。),set严格的吧表示数学意义上的集合,然后个generator是个很有意义的类型,楼主自己研究下 2.dict和list的存在意义类似但不尽相同,list表示一个简单的集合,dict是一个支持增删改查的“数据库”类型,参考下《programming python》 3.一个叫什么来着的思想,大概就是我们只需要让每个子程序仅仅保证完成自己的工作,进而保证总体工作的正常。。。不要把很多不同的任务依赖到一个程序上,类啊,还有这些不同的数据对象也是一样的,如果你天天总是接触到数学意义的集合,你会不会有一天想自己定义一个对象来保证集合里没有重复数据,这样方便你编程,于是python就给了你set |
8 Ranler 2012-08-21 19:53:27 +08:00 不懂PHP,但是研究过Lua解释器,Lua也是只有一种table数据结构,既可以当数组用也可以当字典,但是其内部实现还是会对不同的用途开辟不同存储区域,进行不同优化,上层结构只是封装了一下。 数据结构分得越细,通用性越差,但是每种类型特性表现的越好,可以针对不同方向使用和优化。 |
9 dianso 2012-08-21 23:20:23 +08:00 语言没有所谓的优势 |
10 aisk 2012-08-22 14:03:06 +08:00 应该说提供很多种,但是这四种提供语法糖了吧… |
11 ivenvd 2012-08-22 15:53:57 +08:00 |
12 kernel1983 2012-08-23 23:27:15 +08:00 var in set和in list的速度, 自己可以比较看看 |
13 chuck911 2012-08-24 09:16:26 +08:00 语法丑,array(),array_xx() 当然php5.4对语法优化了 |
15 glasslion 2012-08-24 15:49:03 +08:00 list/tuple 和set/map 的底层实现的数据结构完全不同,不同操作的时间复杂度也不同。 为了优化PHP/JS里四不像的数组,编译器开发人员不知耗费了多少心血 |