为什么我不能使用带有 python 生成器表达式的 `else`(来自 if / else)?

Why can I not have `else` (from if / else) with python generator expressions?

我有以下代码,工作正常:

incl_list = ['A']
my_list = [{'A': 1, 'B': 'world'}, {'A': 4, 'B': 'hello'}]
result = '\n'.join(','.join(f'{key}={value}' for key, value in record.items() if key in incl_list) for record in my_list)

结果产生:

'A=1\nA=4'

我的问题是为什么我不能添加 else 语句,如下所示:

result = '\n'.join(','.join(f'{key}={value}' for key, value in record.items() if key in incl_list) else 'ignore' for record in my_list)

类似于列表理解?

我得到的错误是:

 File "<ipython-input-276-201c8f88ac13>", line 1
    result = '\n'.join(','.join(f'{key}={value}' for key, value in record.items() if key in incl_list else 'ignore') for record in my_list)
                                                                                                         ^
SyntaxError: invalid syntax

你的 else 语句需要与 if 语句一起使用,当在理解中使用时,因此你可以像这样修改你的代码以使其工作

result = '\n'.join(','.join(f'{key}={value}' if key in incl_list else 'ignore' for key, value in record.items()) for record in my_list)