python for循环中的赋值可能吗?

mal*_*ngi 2 python syntactic-sugar

我有一个字典d(和一个单独的键排序列表,keys).我希望循环只处理值为的条目False- 所以我尝试了以下内容:

for key in keys and not d[key]:
 #do foo
Run Code Online (Sandbox Code Playgroud)

我想我对python sytax的理解并不是我想的那样 - 因为赋值不会假设发生在上面,并且ai得到了一个instanciation错误.

下面的工作当然,但我真的希望能够使用类似上面的代码..可能吗?

for key in keys:
 if d[key]: continue
  #foo time!
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ign*_*ams 5

为此使用genex.

for key in (k for k in keys if not d[k]):
   ....
Run Code Online (Sandbox Code Playgroud)

  • 我不鼓励这样做,因为它不比_if cond:continue_好多了,并且它不容易允许多个条件(另外你只为"酷"因素添加一个生成器表达式...是的你可以做它,但它不会使代码更容易理解,也不会使它更快(我假设它使它变慢)) (4认同)