如何使用python映射字符串
这是我的代码:如何使用python映射字符串,python,string,Python,String,这是我的代码: a= ''' ddwqqf{x}''' def b(): ... c=b(a,{'x':'!!!!!'}) print c 我想得到ddwqqf, 那么如何创建b函数 谢谢 更新: 但如何做到这一点: a= ''' ddwqqf{x},{'a':'aaaa'}''' c = a.format(x="!!!!!") d= open('a.txt','a') d.write(c) 它显示错误: Traceback (most recent call last):
a= ''' ddwqqf{x}'''
def b():
...
c=b(a,{'x':'!!!!!'})
print c
我想得到ddwqqf代码>,
那么如何创建b
函数
谢谢
更新:
但如何做到这一点:
a= ''' ddwqqf{x},{'a':'aaaa'}'''
c = a.format(x="!!!!!")
d= open('a.txt','a')
d.write(c)
它显示错误:
Traceback (most recent call last):
File "d.py", line 8, in <module>
c = a.format(x="!!!!!")
KeyError: "'a'"
试一试
这适用于Python2.6或更高版本。当然,您不需要为此定义函数:
a = " ddwqqf{x}"
c = a.format(x="!!!!!")
就够了
编辑关于您的更新:
a = " ddwqqf{x},{{'a':'aaaa'}}"
避免替换第二对大括号
另一次编辑:我真的不知道你的字符串来自哪里,以及这一切的上下文是什么。一个解决办法可能是
import re
d = {"x_1": "1", "x_2": "2", "x_3": "3", "x_4": "4"}
re.sub(r"\{([a-z_0-9]+)\}", lambda m: d[m.group(1)], s)
其中s
是您的字符串。试试看
这适用于Python2.6或更高版本。当然,您不需要为此定义函数:
a = " ddwqqf{x}"
c = a.format(x="!!!!!")
就够了
编辑关于您的更新:
a = " ddwqqf{x},{{'a':'aaaa'}}"
避免替换第二对大括号
另一次编辑:我真的不知道你的字符串来自哪里,以及这一切的上下文是什么。一个解决办法可能是
import re
d = {"x_1": "1", "x_2": "2", "x_3": "3", "x_4": "4"}
re.sub(r"\{([a-z_0-9]+)\}", lambda m: d[m.group(1)], s)
其中s
是您的字符串。您想要实现什么?您的第二个示例非常混乱。我想将许多不同的变量映射到一个dict,并创建许多这样的dict。您想实现什么?你的第二个例子很混乱。我想把很多不同的变量映射成一个dict,然后像这样创建很多dict。你有没有其他方法来这样做,因为字符串非常大,如果我把{}改成{{},这对我来说是一项艰巨的工作。看updated2。你有没有其他方法来做这个,因为字符串非常大,如果我把{}改成{{},那对我来说是一项艰巨的工作。看看更新的2。