sum = 0
for i in range(len(num_list)):
sum += num_list[i]
看到有大神吐槽这段代码,形容看到它如同见到它有种看见douban变成***站的悲哀。
学了python一段时间,确实能体会到Python的简洁清晰,但很多时候,总有种自己在用另一套语法来写C++,写Shell的感觉。
比如:交换数据 a, b = b, a,下意识的会想着用一个temp变量来操作, a = temp; a = b; b = temp;
请大家建议如何能写的更pythonic,有没有什么进阶的路线,博客,书籍推荐。
谢谢GeauxEric提醒
8 回答
富国沪深
TA贡献1790条经验 获得超9个赞
pythonic的代码应该简洁易懂,方便查看。一段代码一眼看过去,没有多余的累赘,没有难看的缩进。并不是多用些python内置函数就pythonic了。Lowky的回答很不错。这里不必要用range,这是冗余的。另外如果用range请用xrange,它返回一个迭代器,比range要好
遍历list,不要采用这种方法。如果不需要索引值就用Lowky的,需要的用enumrate,除非你想遍历中修改这个list,这时大多是从后序遍历
慕码人2483693
TA贡献1860条经验 获得超9个赞
my_sum = reduce(lambda x, y: x+y, num_list)
要解释吗?
要变得pythonic也没什么东西看一下就行了,就是要把python built-in的一些东西吃透,我也正在吃之中。
繁华开满天机
TA贡献1816条经验 获得超4个赞
关于 pythonic
推荐一在线电子书 《The Little Book of Python Anti-Patterns》
还有一篇 blog 30 Python Language Features and Tricks You May Not Know About
慕姐4208626
TA贡献1852条经验 获得超7个赞
for item in num_list:
sum += item
另外一些函数如len()等,不要放在循环中,代码规模大了,很耗时间
length = len(xxx)
添加回答
举报
0/150
提交
取消