python2.7 - 为何说这段代码很难看,怎么能变得pythonic?
阿神
阿神 2017-04-17 15:07:20
[Python讨论组]
阿神
阿神

闭关修行中......

全部回复(8)
天蓬老师

my_sum = sum(num_list)

巴扎黑

pythonic的代码应该简洁易懂,方便查看。一段代码一眼看过去,没有多余的累赘,没有难看的缩进。并不是多用些python内置函数就pythonic了。Lowky的回答很不错。这里不必要用range,这是冗余的。另外如果用range请用xrange,它返回一个迭代器,比range要好
遍历list,不要采用这种方法。如果不需要索引值就用Lowky的,需要的用enumrate,除非你想遍历中修改这个list,这时大多是从后序遍历

黄舟

可以更简洁一点,还有就是循环内的条件记得缩进。

sum = 0
for i in num_list:
    sum += i
迷茫

GeauxEric那个不错,我第一想法是有点装X的。。。

my_sum = sum(i for i in number_list)
黄舟

my_sum = reduce(lambda x, y: x+y, num_list)

要解释吗?

要变得pythonic也没什么东西看一下就行了,就是要把python built-in的一些东西吃透,我也正在吃之中。

巴扎黑

关于 pythonic

推荐一在线电子书 《The Little Book of Python Anti-Patterns》

还有一篇 blog 30 Python Language Features and Tricks You May Not Know About

PHP中文网

难道我会告诉你在C++里面交换数据我会用:

int a = 3, b = 4;
pair<int&, int&>(b, a) = make_pair(a, b);

累加数我会用:

vector<int> v = {1, 2, 3, 4, 5};
int sum = accumulate(v.begin(), v.end(), 0);

简直优雅得无法直视啊有木有!!!好吧已经不是在说Python了. 折叠我吧. 我只是想告诉题主, C++也有cplusplus-ful的一面, far beyond textbooks的一面.

PHP中文网
for item in num_list:
    sum += item

另外一些函数如len()等,不要放在循环中,代码规模大了,很耗时间
length = len(xxx)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号