2024-04-23 22:38:26 发布
网友
我正在使用python解析一个文本文件,其中包含三元运算符a?b:c
我想转换一下这个?:运算符到python条件语句b if a else c。你知道吗
示例:
expression = "(2.4**l2) + 8.0*( (l3>=l4) ? k2:k3 )" converted_expression = "(2.4**l2) + 8.0*(k2 if (l3>=l4) else k3 )"
用正则表达式怎么样?这个特殊的regex不关心空格,为了清晰起见,它使用了命名的捕获组
import re regex = re.compile(r'\((?P<cond>.*)\) ?\? ?(?P<if_true>.+):(?P<if_false>.+)') string = '(l3>=l4) ? k2:k3' match = regex.search(string) print('{if_true} if {cond} else {if_false}'.format(if_true=match.group('if_true'), cond=match.group('cond'), if_false=match.group('if_false'))) # k2 if l3>=l4 else k3
嗯,这可能有点有限,但你可以用以下方法:
converted_expression = "(2.4**l2) + 8.0*([k3,k2][bool(l3>=l4)])"
bool(…)部分将返回False或True,作为列表索引分别自动转换为0和1。你知道吗
用正则表达式怎么样?这个特殊的regex不关心空格,为了清晰起见,它使用了命名的捕获组
嗯,这可能有点有限,但你可以用以下方法:
bool(…)部分将返回False或True,作为列表索引分别自动转换为0和1。你知道吗
相关问题 更多 >
编程相关推荐