当前位置: 首页 > 知识库问答 >
问题:

python用不同的值替换多次出现的字符串

夏侯瑞
2023-03-14

我正在用python编写一个脚本,用那里的答案替换一个数学函数(如log)的所有出现的情况,但在我遇到这个问题后不久,我无法用它的答案替换一个函数的多个出现的情况

x = "log(10)+log(2)"
answer_list = [1, 0.301]

我想分别用1和0.301替换log(10)和log(2),我尝试使用re.sub,但它不起作用,我无法用那里的答案替换各自的函数,任何帮助都将感激谢谢

共有2个答案

诸经略
2023-03-14

只要字符串不包含空格,并且不同对数函数之间有+符号,那么eval可以作为一种实现方法。

>>> a = 'log(10)+log(2)'
>>> b = a.split('+')
>>> b
['log(10)', 'log(2)']

>>> from math import log10 as log
>>> [eval(i) for i in b]
[1.0, 0.3010299956639812]
宫俊远
2023-03-14

试试看

x = "log(10)+log(2)"
new_x = x.replace('log(10)','1').replace('log(2)','0.301')
 类似资料:
  • 问题内容: 我有一些示例字符串。如何用空字符串替换长字符串中第一次出现的该字符串? 问题答案: 字符串replace()函数可以完美解决此问题: string.replace(s,old,new [,maxreplace]) 返回字符串s的副本,其中所有出现的子字符串old都替换为new。如果给出了可选参数maxreplace,则替换第一个出现的maxreplace。

  • 问题内容: 我想删除的特殊字符,如多次出现,,,从我的java字符串由单下划线。我试过了 并且似乎用下划线替换了连续的相同类型的特殊字符,但否则不起作用。例如: 变成 (下划线有2个。)但是应该是。 同样对于失败的情况。我也尝试使用regex并做了一个正则表达式 但这仍然无济于事。我该如何实现? 问题答案: 注意,这是对与第一个捕获组匹配的 内容 的反向引用。要实际匹配字符类中的一个或多个任何字符

  • 我有两个文本文件,并用第二个文件中的实际匹配项替换XXX占位符-按照第二个文件中给出的顺序。 第一个文本是一个文件,在一行中有多行和多个占位符。 欧盟由以下国家组成:XXX、XXX、XXX、XXX、XXX。。。。欧盟内最大的三个国家是XXX,XXX,XXX。 第二个文件是每行一个匹配的列表: 波兰荷兰丹麦西班牙意大利德国法国 我想把它替换如下: 欧洲联盟由下列国家组成:波兰、荷兰、丹麦、西班牙、意

  • 问题内容: 我有这样的字符串 我想用转义双引号(\“)替换最后一个双引号(”) 字符串的结果是 我怎样才能做到这一点。我知道要替换字符串的第一次出现。但不知道如何替换字符串的最后一次出现 问题答案: String str = “"Position, fix, dial"“; int ind = str.lastIndexOf(“"“); if( ind>=0 ) str = new StringB

  • 问题内容: 我需要替换字符串中的多个字符。结果不能包含任何“&”或任何逗号。 我目前有: 但是,如何输入多个值? 非常感谢! 问题答案: 您只需要菊花链式连接它们:

  • 问题内容: 我想替换字符串中第n个出现的子字符串。 一定有什么我想做的事情是 最简单,最Python化的方法是什么? 为什么不重复: 我不想在这种方法中使用正则表达式,而我发现的类似问题的大多数答案只是正则表达式剥离或真正复杂的功能。我真的想要尽可能简单而不是正则表达式的解决方案。 问题答案: 我使用简单的函数,该函数列出所有出现的事件,选择第n个位置,并使用它将原始字符串分成两个子字符串。然后,