尝试用简写形式重构功能

时间:2018-10-13 10:51:23

标签: python python-3.x

我正在寻找一种通过列表理解在此处编写for循环的方法:

    def calc(uno):
        count = 0
        for num in uno:
            count += 1
        return count

    print(calc('something'))

草稿为:

     def calc(uno):
         count = 0
         count = [count += 1 for num in uno]
         return count

    print(calc('something'))

很遗憾,我在count += 1中收到错误消息。

1 个答案:

答案 0 :(得分:1)

列表理解会创建列表,因此,如果您要使用列表理解来编写for循环,它将看起来像:

def calc(uno):
     return sum((1 for num in uno))

您创建1的列表,然后对其求和。列表理解不能单独求和(至少不是您想要的方式)。

编辑:确实,不需要列表,生成器就足够了,非常感谢您的评论。