我是Pythonizer的作者,我正在尝试将以下代码从perl转换为python:
%entity2char = (
# Some normal chars that have special meaning in SGML context
amp => '&', # ampersand
'gt' => '>', # greater than
# PUBLIC ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML
AElig => chr(198), # capital AE diphthong (ligature)
Aacute => chr(193), # capital A, acute accent
( $] > 5.007 ? (
'OElig;' => chr(338),
'diams;' => chr(9830),
) : ())
);
我们不应该在这里讨论的人工智能推荐:
entity2char = {'amp': '&', 'gt': '>', 'AElig': chr(198), 'Aacute': chr(193),
**{'OElig;': chr(338), 'diams;': chr(9830), } if 5.034 > 5.007 else **{}})
但是这会产生一个指向if
的语法错误,你知道如何把这个表达式从perl转换成python吗?如果可能的话,它应该是一行代码(例如,代码可以嵌套在任意表达式中,而不是基本的赋值语句中)。
2条答案
按热度按时间zc0qhyus1#
如果要有条件地在构建的dict中包含某些键值对,可以使用dict解包,其中解包的目标是空dict或具有这些键值对的dict,具体取决于条件。
例如,
将生成一个dict,该dict将
'a': 1
作为键值对,并且如果x > 3
条件成立,还将具有'b': 2
和'c': 3
。iqjalb3h2#
实体2字符={“放大器”:'&','gt':'〉','艾利格':chr(198),“急性”:chr(193),({'OElig;':chr(338),'直径;':chr(9830),}如果5.034〉5.007否则{})}
使用(if_表达式)