1
scream7 2015-07-23 18:18:32 +08:00
我就觉得列表切片,推倒简直是爽
|
3
loggerhead 2015-07-23 18:27:14 +08:00
```c
int swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; } ``` 等价于 ```python a, b = b, a ``` |
4
loggerhead 2015-07-23 18:28:05 +08:00
这缩进怎么回事?我明明加了空格
|
5
chengzhoukun 2015-07-23 18:30:26 +08:00 via Android
@loggerhead 回帖不支持Markdown吧
|
6
janxin 2015-07-23 19:28:34 +08:00 1
[a for a in b]
|
8
zonghua 2015-07-23 19:47:23 +08:00
javascript太自由,没约束
|
9
s51431980 2015-07-23 19:48:06 +08:00
java 想优雅,可以用 groovy
|
10
hitluobin 2015-07-23 20:00:17 +08:00
|
11
matsuijurina 2015-07-23 20:12:12 +08:00 2
看了这个标题我觉得楼主的JAVA肯定学得很好
|
12
Ouyangan 2015-07-23 20:32:07 +08:00
java菜鸟一枚, 至今未领略过优雅是何种滋味, 等我学好java再来搞搞python . 你们等着啊
|
13
lzhtony 2015-07-23 20:35:36 +08:00
@loggerhead JAVA: a^=b^=a^=b
|
14
yakczh 2015-07-23 20:37:52 +08:00 2
ruby才是优雅,python那叫蛋疼
|
17
loggerhead 2015-07-23 21:25:55 +08:00
@chengzhoukun 确实不支持,但是 每一行的前置空格会被自动去掉
@lzhtony 三句弄成一句,可读性太低了。python那种没见过挺多说“诶,这是什么神奇的语法”,你这个没见过就“这什么鬼。。” |
18
dddd 2015-07-23 21:31:04 +08:00
就语法上来讲…
|
19
mingyun 2015-07-23 21:43:57 +08:00
python复制粘贴代替比较蛋疼
|
21
littleshy 2015-07-23 22:57:12 +08:00
python的lambda表达式好直白,直接写个lambda算什么啊……
|
22
yakczh 2015-07-23 23:08:53 +08:00
写两行的lambda试试
|
24
seki 2015-07-23 23:19:17 +08:00
numpy 程序 demo 写得很爽,就是 freeze 之后整个程序三百多兆
想换个 C++ 什么的写一个,查了一下相关的库之后觉得还是算了 = = |
25
illuz 2015-07-23 23:29:04 +08:00
|
26
lzhtony 2015-07-23 23:45:01 +08:00
@loggerhead 写在swap函数里面谁知道2333
个人认为代码的优雅,就是用较少的代码写出较好的效果(较高的效率 较多的功能...etc). |
28
mulog 2015-07-24 00:15:54 +08:00
list/dict comprehension
|
29
lincanbin 2015-07-24 00:49:49 +08:00
Java的三目运算符:
min=a<b?a:b; Python: min=a if a<b else b |
30
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 |
32
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 。 |
33
sciooga 2015-07-24 02:21:13 +08:00
@loggerhead 不支持 markdown 还没有 white-space: pre; 所以排版就乱了,我反馈过一次,没人理~
|
34
binjoo 2015-07-24 03:28:22 +08:00 via Android
真在学习python
|
35
qw7692336 2015-07-24 04:37:41 +08:00
刚刚看到我之前写到一句自己非常喜欢到代码:
i=i>0?-i:-i+1; 把这段代码放到循环体里面一直迭代。 |
36
hkongm 2015-07-24 08:56:38 +08:00
说语法,不是ruby最牛么
|
37
magicyu1986 2015-07-24 08:58:12 +08:00
a < b < c
|
38
publicID001 2015-07-24 08:59:37 +08:00 via Android
@lzhtony 那交换两个对象试试呢?
|
39
Tiande 2015-07-24 09:00:54 +08:00
|
41
est 2015-07-24 09:14:32 +08:00 1
@dtdnqsb 为什么要这样做呢。。。
>>> list('hahahha') ['h', 'a', 'h', 'a', 'h', 'h', 'a'] 其实大多数时候str可以直接遍历。比如提取字符种的数字部分: >>> filter(str.isdigit, 'abcde123fghi567') '123567' |
42
knightdf 2015-07-24 09:17:39 +08:00
lz的java一定学的很好
|
43
yuankui 2015-07-24 09:25:00 +08:00
[1,2,3,4][::-1] => [4,3,2,1]
map,reduce,filter |
44
thinkmore 2015-07-24 09:47:57 +08:00
你们所谓的优雅,只是代码简洁吗?过度的封装而已
|
47
chaucerling 2015-07-24 10:24:38 +08:00
lz如果学学函数式吧,那才叫优雅
|
48
googya 2015-07-24 10:31:44 +08:00
啰嗦有啰嗦的好处, 灵活有灵活的优点
|
49
codeyung 2015-07-24 11:02:34 +08:00
没有太大可比性 想学啥学啥吧 Scala八错推荐
|
50
lzhtony 2015-07-24 11:03:09 +08:00
@publicID001 对象确实没想到什么好方法.
@bdbai 仔细思考后发现这个方法的奥妙不是更吸引人. 灵活的语言一般来说代码更简洁优雅吧.python确实很有这种feel,C++也是.Java和C比起来很多语法都不支持,也就没有那么高的灵活性. |
52
laucie 2015-07-24 11:13:42 +08:00
为啥不说python简单
|
53
robertlyc 2015-07-24 11:26:51 +08:00
那是因为没学过ruby
|
54
publicID001 2015-07-24 11:50:20 +08:00
|
55
theJian 2015-07-24 12:08:13 +08:00
Python >> Ruby >> CoffeeScript >> ?
|
56
cutepig49 2015-07-24 14:43:31 +08:00
@publicID001 这是优点,不是缺点
|
57
newborn 2015-07-24 15:04:38 +08:00
你可以再顺便了解下perl
|
58
laoyuan 2015-07-24 16:39:04 +08:00
str[:-0] 这里就是个坑。
|
59
NeoAtlantis 2015-07-24 16:58:55 +08:00 via Android
a=[(1,2,3), (4,5,6)]
for x,y,z in a: pass python确实不错……一个蒸汽轮机的课程设计作业……800多个参数直接用python算 完了还直接画图出报告……写程序连调试修改就花了两天时间…… |
60
bramblex 2015-07-24 20:30:08 +08:00
{-n的所有因数:-}
factor n = [x| x <- [1..n], n `mod` x ==0] {-判断n是否为素数:-} isPrime n = [x | x <- [1..n], n `mod` x == 0] == [1, n] {-n的所有素因数:-} primeFactor n = [x| x <- [1..n], x /= 1, n `mod` x == 0, isPrime x] {-最后分解n的素因数-} decPrimeFactor 1 = [] decPrimeFactor n = first:(decPrimeFactor (div n first)) _ _ where first = head ( primeFactor n ) |
64
msg7086 2015-07-24 21:40:22 +08:00
@bramblex
Rails其实还好,初创公司大杀器,常用组件全备齐了,一个框架足够用到上市了。 当然关键是写的人要靠谱,以及测试代码都要跟上。 现在在公司里处理的一个Rails应用,完全是一堆不会Ruby和Rails的人硬写的,还没什么测试,简直要疯。 |
65
bramblex 2015-07-24 23:21:03 +08:00
@msg7086
从客观上来讲,Rails还是非常适合创业公司前期用来快速搭建网站的。 我也拿Rails做过项目,确实非常方便快捷,但是主观上依旧不喜欢。不喜欢是指不喜欢使用。不过对它的各种设计和还是非常有兴趣的。 |
66
lancegin 2015-07-25 10:41:26 +08:00
对列表数据进行处理:map(lambda item:deal(item), list)
|