为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑5688855 2019-02-21 11:09:33
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贡献1856条经验 获得超11个赞

my_sum = sum(num_list)

查看完整回答
反对 回复 2019-03-01
?
富国沪深

TA贡献1790条经验 获得超9个赞

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

查看完整回答
反对 回复 2019-03-01
?
www说

TA贡献1775条经验 获得超8个赞

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

sum = 0
for i in num_list:
    sum += i
查看完整回答
反对 回复 2019-03-01
?
12345678_0001

TA贡献1802条经验 获得超5个赞

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

my_sum = sum(i for i in number_list)
查看完整回答
反对 回复 2019-03-01
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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

要解释吗?

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

查看完整回答
反对 回复 2019-03-01
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

查看完整回答
反对 回复 2019-03-01
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

for item in num_list:
    sum += item

另外一些函数如len()等,不要放在循环中,代码规模大了,很耗时间
length = len(xxx)
查看完整回答
反对 回复 2019-03-01
  • 8 回答
  • 0 关注
  • 548 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信