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



我有以下代码,运行良好:

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=1nA=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)

最新更新