猿问

为何说这段代码很难看,怎么能变得pythonic?

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提醒

慕尼黑5688855
浏览 569回答 8
8回答

呼唤远方

my_sum = sum(num_list)

富国沪深

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

www说

可以更简洁一点,还有就是循环内的条件记得缩进。 sum = 0 for i in num_list: sum += i

12345678_0001

GeauxEric那个不错,我第一想法是有点装X的。。。 my_sum = sum(i for i in number_list)

慕码人2483693

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

慕姐4208626

for item in num_list: sum += item 另外一些函数如len()等,不要放在循环中,代码规模大了,很耗时间 length = len(xxx)
随时随地看视频慕课网APP

相关分类

Python
我要回答