首页 > 解决方案 > for循环中'for'前面的字母代表什么?

问题描述

在代码中:

def myfunc(*args):
    return [ n for n in args if n%2 == 0]

我一直认为n意思是“任何东西”,所以我们为什么不能拥有 [for 'anything' in args if 'anything' % 2 == 0 ]

例如[for n in args if n%2 ==0]

为什么我们需要在n之前for?我应该如何看待这一点,为什么有时只在 for 循环中需要它?

标签: python

解决方案


不知道您所说的“我总是认为n意思是'任何东西'”是什么意思。您正在查看的是列表理解,而不是 for 循环。它们有不同的语法。你必须像这样在心理上解析它:

  1. 对于我收藏中的每个项目,当前项目将被称为n( for n in args)
  2. 添加n到我正在生成的列表中...(您感到困惑的步骤)
  3. ...仅当某些条件为真时(n%2 == 0。此过滤是可选的)

例如,看看这个列表理解:

>>> [thing * 2 for thing in (1, 2, 3, 4)]
[2, 4, 6, 8]
>>> 
  1. 对于我收藏中的每个项目,当前项目将被称为thing( for thing in (1, 2, 3, 4))
  2. 添加thing * 2到我正在生成的列表中

推荐阅读