当前位置: 首页 > 面试题库 >

无法在列表理解中使用* = python运算符

张卓
2023-03-14
问题内容

这个问题已经在这里有了答案

如何进行列表理解中的作业? (6个答案)

4年前关闭。

我不确定*=for循环中使用运算符时为什么不能在列表理解中使用运算符?

def funcLC(l):
    ans = 1
    [ans *= x for x in l if x < 0]
    return ans

SyntaxError: invalid syntax

def funcFor(l):
    ans = 1
    for x in l:
        if x < 0:
            start *= x
    return ans

问题答案:

赋值运算符(及其上的所有变体)在Python中构成一个 语句 ,而不是一个 expression
。不幸的是,列表推导(以及其他推导,如集合,字典和生成器)仅支持表达式。



 类似资料:
  • 问题内容: 在Python中,如果将对象列表乘以整数,则会得到对该对象的引用列表,例如: 如果我想要的行为是创建原始对象的副本列表(例如,通过“ copy.copy()”方法或某种标准创建的副本),是否有一种 优雅的 方法可以 使用相同的乘法运算符 来做到这一点?我应该坚持列表理解之类的吗? 任何版本的Python都可以。 问题答案: 序列上的乘法运算符表示项目的重复-不会创建项目的副本(浅副本或

  • 问题内容: 列表理解和映射计算都应该(至少在理论上)相对容易并行化:列表理解内的每个计算都可以独立于所有其他元素的计算来完成。例如在表达式中 每个x * x计算都可以(至少在理论上)并行完成。 我的问题是:是否有任何Python模块/ Python实施/ Python编程技巧可并行化列表理解计算(以便使用所有16​​/32 / …内核或将计算分布在计算机网格或在云上)? 问题答案: 正如Ken所说

  • 问题内容: 我正在运行Python 3.4.2,我对代码的行为感到困惑。我正在尝试创建递增次数的可调用多项式函数列表: 但是出于某种原因,它这样做: 为什么似乎在列表理解中重复了最后一个lambda表达式的列表? 问题答案: 这个问题是经典的“陷阱”,是在lambda函数被调用之前,不会查找lambda函数中引用的内容。当时的值是结束时绑定到的最后一个值,即。 如果绑定到函数定义中的默认值,则每个

  • 问题内容: 在此示例中,star运算符对输入参数列表做了什么? 具体来说,如果我使用star运算符运行该程序,它将打印: 如果没有星星运行它将打印: 问题答案: 该运营商解压缩参数列表。它允许您以列表项作为单独的参数来调用函数。 例如,如果is ,则等效于。

  • 问题是我得到错误(过滤器表达式只能包含非主键属性:主键属性:名称)。租户是我的主分区键,名称是我的主排序键。 我需要在dynamo db中编写与此等效的内容:从项目中选择*,其中tenant='testProject',name in('John','Dave')。