您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python在while循环中的条件期间将值分配给变量

Python在while循环中的条件期间将值分配给变量

您不能在表达式中使用赋值。分配本身就是一条语句,您不能合并Python语句。

这是语言设计者的明确选择。意外地使用一个=并分配,这太容易了,在这里您打算使用两个==并测试相等性

将分配 移到 循环中,或 循环 之前 分配,然后在循环本身中分配新值。

对于您的特定示例,Pythoncsv模块为您提供了更高级别的API,并且您将遍历它们csv.reader()

with open(csvfilename, 'rb') as csvfh:
    reader = csv.reader(csvfh)
    for row in reader:

我 (如果有的话)需要在循环结构中分配。通常,有(很多)更好的方法解决当前的问题。

就是说,从Python 3.8开始,该语言实际上将具有赋值表达式,:=用作赋值运算符。参见PEP 572。赋值表达式实际上在列表推导中很有用,例如,当您既需要在要构建的列表中包含方法返回值,又需要能够在测试中使用该值时。

现在,您必须使用生成器表达式:

absolute = (os.path.abspath(p) for p in files)
filtered = [abs for abs in absolute if included(abs)]

但是使用赋值表达式,您可以内联os.path.abspath()调用

filtered = [abs for p in files if included(abs := os.path.abspath(p))]
python 2022/1/1 18:38:38 有480人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶