【发布时间】:2020-12-28 08:55:14
【问题描述】:
我有以下 for 循环:
a = 0
b = 100
for x in my_list:
a = a * b + x
return a
我的问题是我可以单行写吗?
我试过了:
a = my_list[0]
return sum((a*b + x) for x in my_list)
但没有做我想做的事。
【问题讨论】:
-
我想不出用一行写的方法,即使其他人能想到一种“聪明”的方法,我也非常怀疑它是否会使代码使用起来更方便。
-
“但没有做我想做的事。”你想让它做什么?
-
如上执行结果,最后返回“a”,我刚刚编辑了它
-
my_list完全是任意的吗? -
为什么要写在一行?请注意,除了
for x in whatever: do_something_with(x),Python 没有单行 for 循环,但如果您询问使用理解构造,那不是您应该考虑的方式。列表推导等表达对可迭代对象的映射/过滤操作以产生一些结果、列表、字典、集合或生成器。您在这里拥有的不是映射/过滤操作,而是累积。 Pythonic 的方法是使用 for 循环。
标签: python python-3.x python-2.7 for-loop one-liner