python 的 for 好牛x

2013-03-25 16:31:40 +08:00
 workaholic
python 的 for 好牛x......
6683 次点击
所在节点    Python
33 条回复
workaholic
2013-03-25 16:37:34 +08:00
字符串、字典、元组、列表、集合、文件 都能遍历
liwei
2013-03-25 16:57:51 +08:00
这不是很正常么,很多语言都有类似的Iterable接口,只要实现该接口的都可以用这种方式遍历。
binux
2013-03-25 16:59:57 +08:00
C++不是也有了吗
workaholic
2013-03-25 17:01:42 +08:00
我指的是原生的功能,不是说自己去利用接口实现,python 的for用起来简洁方便,至少与php相比是这样
Kymair
2013-03-25 17:13:27 +08:00
这个叫List Comprehension ( http://en.wikipedia.org/wiki/List_comprehension )
不过Ruby里倒还真没有这个, 是用block模拟的?
zhujinliang
2013-03-25 17:18:33 +08:00
没用过python,看起来挺像C#的foreach的
halfelf
2013-03-25 17:29:10 +08:00
大惊小怪
liuxurong
2013-03-25 20:41:53 +08:00
Python的字符串处理太方便了
y
2013-03-26 05:36:56 +08:00
Lisp 的 loop macro 也很给力,几乎就是一句英文句子……

(loop for i from 1 to 100 maximize (* i (- 100 i)))

里面的 maximize 可以换成各种动词, 比如 sum, minimize, collect (返回一个 list)
或者 do, 执行某个函数。

再比如

(loop for i from 1 to 10000 count (primep i))

其中 (primep i) 是自己写的判断 i 是不是素数的 predictive, 返回 T 或 Null.
(真要知道素数个数没这么麻烦,这里就是个例子.)
fwee
2013-03-26 07:17:39 +08:00
(1..10000).select &:odd?

ruby的。。
hanf
2013-03-26 08:42:03 +08:00
那是因为那些数据结构类都实现了Iterable
skywinger
2013-03-26 09:59:08 +08:00
java 的 for(xxx:xxxx)一样很简单,很好用,很牛X
楼主真的有的井底青蛙了。
workaholic
2013-03-26 10:09:20 +08:00
@skywinger 确实,java看都没看一眼
hpyhacking
2013-03-26 15:01:34 +08:00
有[H|T]就够了
xavierskip
2013-03-26 15:03:03 +08:00
方便的是列表解析吧。
likuku
2013-03-26 16:04:28 +08:00
list 和 set ... 都超好玩...
jezal
2013-03-26 16:27:41 +08:00
楼主才知道爽?
013231
2013-03-26 16:49:07 +08:00
不就是迭代器嗎...大部分高級語音都有吧.
013231
2013-03-26 16:49:29 +08:00
s/語音/語言/
Muninn
2013-03-26 17:48:16 +08:00
现在觉得with更牛

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/63980

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX