最近刚学 python,以前学的是 JAVA,对比起来才知道 JAVA 真的语法有点啰嗦,那 python 有哪些令你感到优雅、简洁、易懂、而且强大的的代码片段可以分享分享

2015-07-23 18:16:55 +08:00
 lyning
11260 次点击
所在节点    Python
66 条回复
littleshy
2015-07-23 22:57:12 +08:00
python的lambda表达式好直白,直接写个lambda算什么啊……
yakczh
2015-07-23 23:08:53 +08:00
写两行的lambda试试
est
2015-07-23 23:13:48 +08:00
@yakczh 单行lambda可以组合成任意复杂的表达式。。只是很蛋痛而已。。。直接嵌套x1000
seki
2015-07-23 23:19:17 +08:00
numpy 程序 demo 写得很爽,就是 freeze 之后整个程序三百多兆
想换个 C++ 什么的写一个,查了一下相关的库之后觉得还是算了 = =
illuz
2015-07-23 23:29:04 +08:00
lzhtony
2015-07-23 23:45:01 +08:00
@loggerhead 写在swap函数里面谁知道2333
个人认为代码的优雅,就是用较少的代码写出较好的效果(较高的效率 较多的功能...etc).
bdbai
2015-07-24 00:06:06 +08:00
@lzhtony 优雅也要建立在让读者恍然大悟的基础上吧
mulog
2015-07-24 00:15:54 +08:00
list/dict comprehension
lincanbin
2015-07-24 00:49:49 +08:00
Java的三目运算符:
min=a<b?a:b;
Python:
min=a if a<b else b
qw7692336
2015-07-24 01:55:03 +08:00
哈哈
楼主被我介绍进来的室友

@s51431980
groovy就不是java了,现在对几门jvm语言都有点兴趣,像比较成熟的scala、还有Jetbrains的kotlin。用scala来写Android的话,可以用https://github.com/pocorall/scaloid 来简化代码。
用kotlin来写Android,可以用https://github.com/JetBrains/anko 来简化代码。


java8的lambda表达式和Stream API可以进一步让java代码进一步变得优雅。
https://github.com/ReactiveX/RxJava 可以让事件响应变得很优雅,它的Android版https://github.com/ReactiveX/RxAndroid 可以用在Android上,gradle需要用https://github.com/evant/gradle-retrolambda 才能构建

另外Android的
https://github.com/excilys/androidannotations
或者
https://github.com/JakeWharton/butterknife
可以大大地简化代码

这是我的收集:
http://www.v2ex.com/t/206402
Wangxf
2015-07-24 02:08:55 +08:00
@zonghua 楼主说的是java,不是javascript,也是醉了。。。
qw7692336
2015-07-24 02:13:45 +08:00
@matsuijurina
楼主的标题是知乎体,好像也是我推荐他玩知乎的。


@yakczh
@unique
中午看到有人吐槽Java的分层罗嗦
http://www.v2ex.com/t/207800
ruby on rails使用的叫涨血模型,这应该也是Java转ruby会感觉很爽的原因之一。
我之前玩过playframework,据说也是类似ruby on rails的框架,框架也推荐使用类似rails的涨血模型。playframework是唯一一个让我感觉到用法比较优雅的Java框架,但由于Java语法本身的限制,没有办法做到更加优雅。我看到的一些简化Java代码的框架,大多数都只能采用annotation的方式进行简化。如上面的androidannotations 。
sciooga
2015-07-24 02:21:13 +08:00
@loggerhead 不支持 markdown 还没有 white-space: pre; 所以排版就乱了,我反馈过一次,没人理~
binjoo
2015-07-24 03:28:22 +08:00
真在学习python
qw7692336
2015-07-24 04:37:41 +08:00
刚刚看到我之前写到一句自己非常喜欢到代码:
i=i>0?-i:-i+1;
把这段代码放到循环体里面一直迭代。
hkongm
2015-07-24 08:56:38 +08:00
说语法,不是ruby最牛么
magicyu1986
2015-07-24 08:58:12 +08:00
a < b < c
publicID001
2015-07-24 08:59:37 +08:00
@lzhtony 那交换两个对象试试呢?
Tiande
2015-07-24 09:00:54 +08:00
@Wyc0

>>> [a for a in 'hahahha']
['h', 'a', 'h', 'a', 'h', 'h', 'a']
Tiande
2015-07-24 09:02:22 +08:00
@est lambda 一点都不优雅 ;(

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

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

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

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

© 2021 V2EX