擅长:python、mysql、java
<p>带条件的列表理解的语法为:</p>
<pre><code>[<value> for <variable> in <iterable> if <condition>]
</code></pre>
<p><code>if <condition></code>在iterable后面,而不是前面</p>
<p>此外,这里不能有<code>else</code>子句。它不是返回不同值的条件表达式,它只是用来过滤迭代器中的值,所以<code>else</code>没有意义</p>
<p>您似乎将其与<code><value></code>部分中的条件表达式相混淆,它允许您根据条件指定要在结果列表中返回的不同值。这只是一个普通的条件表达式,不特定于列表理解</p>
<p>如果要更新多个目标,则不应使用列表理解。使用普通循环</p>
<pre><code>logstocrunch_finset = set()
errorlist = []
for x in logstocrunch_set:
if pattern.search(x):
logtocrunch_finset.add(x)
else:
errorlist.append(f'{x} is not proper name')
</code></pre>