为什么我不能在 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=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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在Crontab中使用Python 3?

为什么我不能在Python中使用“ +”合并字典?

为什么我不能在 Python 3.8 中使用来自类 numbers.Rational 的这些有理数、分子和分母?

在生成器表达式或for循环中使用python lambda

使用生成器表达式会使Python挂起

在 CMake 中使用生成器表达式有什么好处?

为什么Python 2中的生成器表达式和dict / set理解使用与列表理解不同的嵌套函数?

为什么我不能在 Java 中使用像 if-else 语句这样的 (? :) 运算符?

为什么我不能在Python 3.x中使用python-cjson?

为什么我的正则表达式不能在c ++中工作,但可以在Python中工作?

为什么我不能在 xamarin 上使用来自 XlsIO 的 Open()?

为什么我不能在Python中使用列表作为字典键?

为什么我不能在Python中使用列表作为字典键?

为什么我不能在python3子进程中使用导出的bash函数?

为什么我不能在python CMD模块中使用彩色提示?

为什么我不能在 Python 中的流量控制条件中使用 return()?

为什么我们不能在Python中使用其地址访问对象?

为什么我不能在python命令行中使用&

为什么我不能在 Python 中使用变量作为参数来调用这个函数?

为什么要在自定义计算表达式生成器中使用Builder.Source()?

为什么不能在AsyncTask中使用if / else?

为什么不能在 if....else 中使用 str 语句

为什么我不能在Raspberry Pi上使用python-mosquitto?

Python PIL - 为什么我不能在这里使用 ImageOps.colorize。?

为什么我不能在这段代码上使用 break ,我可以用什么代替?Python

为什么我不能在 C# 三元表达式中使用 break?

为什么我不能在Tuple.Create中使用lambda表达式?

为什么我们不能在 switch 语句中使用关系表达式?

为什么我的正则表达式不能在JS中使用?