python if 单行_学python时,发现很多高手的代码只有一行或几行就达到了我多行代码一样的功能,应该追求这种简洁吗?...

没有,不只是嵌套的问题。还有很多标准库的函数你不熟悉而已。很多东西你自己实现自然会多出行数。知道现成的标准库方法以后会自然地直接和值访问一样很直接写成嵌套的形式,这是思路上自然导致的。这就是熟练而已,打个比方你要对一系列数据进行分组,你可以针对某个字段进行判断用栈来分组,或者你可以先排序再判断边界,而熟悉标准库会直接用sort加groupby筛选,代码会简单很多。如果你不知道from itertools import groupby那么肯定要多写几行,运行效率还低。

所以你看,即使是堆砖块的现代高级语言,不认识砖块还不如用C老老实实码数据结构。

如果说是纯粹的判断逻辑你要比别人多写好多行,那是你考虑问题的角度和别人不太一样,值得重新考虑吧。思路对了再考虑Pythonic的问题。

比如单纯的技巧上的字典表达式,列表表达式,可迭代对象的拆分和组合,都是熟能生巧的,这个不用急的,你多看两遍别人的代码就知道了。毕竟Python不是Ruby,代码还是很好看懂的。这里面有很多Python底层的知识,你接触了以后才潜移默化地知道为什么可以这么写,为什么要这么写。

至于你问要不要追求这种简洁。原则上是不用刻意去追求,简化你自己针对问题思考和解决的思路,把思路用代码实现出来就可以了。格式上的简化会随着你的熟练度自然进化的。

如果说你是OJ看到别人的代码觉得差距很大,这是很正常的,写出那些代码的人花在学习和练习这个语言上的时间比你不知道多到哪里去了,人家有自己的技巧不是很自然的吗?你如果刚学画画看大触的画不也是很崇拜吗?

多多练习就好了。

不是练习把代码写简洁的方法,最少应该练习如何正确地用Python,最好你应该学习如何使用编程语言进行编程。学得多了会或主动或被动地去了解接触范式的知识,这是让编程代码简洁的根源,但说到底是考虑问题和解决问题的思路。

我个人其实是不反感多写几个def或者if的,但是会尽量少写class和else。只有在命令行模式下才会尽量用匿名函数。因为IDE会自动空格,命令行要手动空格很难受,强迫症又总是忍不住打四个空格。

总结一下:

不用刻意追求简洁

优先训练自己解决问题的能力

多熟悉Python标准库

再了解Python的一些特点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值