<分区>
我陷入了一个非常直接的问题,但经过一些调整后,我根本找不到一个简单有效的算法来解决这个问题。
所以基本上我有一个字符串,其中包含某些元素,例如:
l = "test %1, %13, %14, %15"
还有一张 map :
dict = {"%1": "%33", "%13": "%14", "%14", "%15", "%15": "%17"}
我想做以下事情:
for k in dict.keys():
l = l.replace(k, dict[k])
所以我期待的是:
l = "test %33, %14, %15, %17"
但显然这是不可行的,因为键和值之间存在一些冲突。所以上面的代码会输出:
l = "test %33, %17, %17, %17"
很抱歉出现这样的本地问题,但我应该如何解决这个问题并获得预期的输出?请注意,每个键/值的长度不是固定的,所以我不能做类似的事情:
m_idx = l_copy.find(key)
l = l[:m_idx] + dict[key] + l[m_idx+len(key):]
由于长度不固定,上面的代码还是有bug。
我清楚了吗?任何建议将不胜感激!
=======更新
所以所有的键都遵循这种 %[0-9]+ 的模式。