
1 phus 2012-01-02 14:36:24 +08:00 python想达到这样的一个效果: food[a:c] = food[a:b] + food[b:c] 所以slice的区间就是前闭后开。 |
2 guolin 2012-01-02 14:44:27 +08:00 不奇怪,习惯就好了,省掉了开闭区间的麻烦。 |
3 vibbow OP 对Python各种不适应 算鸟,还是走 PHP + C# / C++ 路线吧... |
4 binux 2012-01-02 14:58:21 +08:00 这不是正常的吗? 即使是C++ STL的copy,find JS的Array.slice 不都是这样前闭后开的吗? |
5 cmonday 2012-01-02 15:15:06 +08:00 我想问问哪门语言的子数组不是这么处理,而是像LZ说的前后都闭区间的? |
6 Mutoo 2012-01-02 15:15:09 +08:00 我一开始也不适应,要是python能识别 [a,b] [a,b) (a,b] (a,b) 就好了 |
7 vibbow OP 关键是Python用的这个太尼玛像数学符号… range的话又用的小括号… |
8 ant_sz 2012-01-02 17:42:59 +08:00 好好体会 simple, sometimes native 的感觉,我觉得这个感觉很好的 |
9 clino 2012-01-02 22:01:31 +08:00 @vibbow 其实这个习惯就好了,而且我想这个设计应该是经过深思熟虑的,因为这个而放弃一门语言实在是... range 是函数不能和这个相比较 |
10 flyingkid 2012-01-02 22:21:56 +08:00 如果是这样,那就学习ruby吧,爽到底 |
11 alsotang 2012-01-02 23:40:01 +08:00 @clino 对啊。。怎么能因为这个而放弃一门语言呢。1L不是已经给出这么设计的道理来了吗。。。C++的stl里面,xxx.end()也是指向最后一个元素的后一个位置呢。 range是个函数,而调用函数一般都使用()括号,这个很正常嘛。习惯就好,用python比背PHP的各种函数名方便多了。 |
12 sqbing 2012-01-02 23:40:50 +08:00 当然不是,从2开始,止于4前。 |
13 vibbow OP 现在主要用PHP,曾经还学过Haskell Python的这一块和上两者一比较,用法就完全的不一样了。 |
14 ectotherm 2012-01-03 07:57:03 +08:00 程序中表示切片、迭代等等都喜欢用半闭区间,也就前闭后开,这样很方便的。包括C++ STL在内的很多库都这么干。 |
15 ywjno 2012-01-03 09:02:36 +08:00 换用ruby吧,支持前闭后开跟前闭后闭 |
16 miukal 2012-01-03 09:05:46 +08:00 既然这个语法叫切片,可以把[]里的数字理解成切的位置而不是元素索引。 比如有5个元素abcde |a|b|c|d|e| 从0位置开始一共可以切6刀,所以[2:4]就是第2刀到第4刀之间的元素c,d |
17 levn 2012-01-03 09:19:17 +08:00 drop 2 . take 4 $ the_list |
18 1st 2012-01-03 10:18:19 +08:00 我记得Learning Python上写的就是这个意思。RT @miukal: 既然这个语法叫切片,可以把[]里的数字理解成切的位置而不是元素索引。 比如有5个元素abcde |a|b|c|d|e| 从0位置开始一共可以切6刀,所以[2:4]就是第2刀到第4刀之间的元素c,d |
21 clino 2012-01-09 17:58:00 +08:00 |
23 SkyFvcker 2012-01-31 17:23:16 +08:00 LZ孤陋寡闻被各楼鄙视。。。 |
24 yy77 2012-01-31 17:46:37 +08:00 irb(main):005:0> food = ["1","2","3","4","5"][2..4] => ["3", "4", "5"] |
25 sandhat 2012-02-02 15:32:22 +08:00 一个关于前闭后开的传说~ |