我对python很新,所以我有一个包含一些键的字典和一个字符串.如果在字典中存在字典中存在的模式,我必须替换字符串.字典和字符串都非常大.我正在使用正则表达式来查找模式.
一切正常,直到像这样的键弹出' - ('或''( - )')在这种情况下python给出不平衡括号的错误.
以下是我编写的代码的外观:
somedict={'-(':'value1','(-)':'value2'}
somedata='this is some data containing -( and (-)'
for key in somedict.iterkeys():
somedata=re.sub(key, 'newvalue', somedata)
Run Code Online (Sandbox Code Playgroud)
这是我在控制台中遇到的错误
Traceback (most recent call last):
File "<console>", line 2, in <module>
File "C:\Python27\lib\re.py", line 151, in sub
return _compile(pattern, flags).sub(repl, string, count)
File "C:\Python27\lib\re.py", line 244, in _compile
raise error, v # invalid expression
error: unbalanced parenthesis
Run Code Online (Sandbox Code Playgroud)
我也尝试了很多方法使用正则表达式编译器并搜索了很多但没有找到任何解决问题的方法.任何帮助表示赞赏.
我是python的初学者,使用v2.7.2这是我试图在命令提示符下执行的
p = 2
while(p>0):
for i in range(10):
print i+1 , p
p-=1
Run Code Online (Sandbox Code Playgroud)
该预期产量
1 2
2 1
Run Code Online (Sandbox Code Playgroud)
但实际输出是
1 2
2 1
3 0
4 -1
5 -2
6 -3
7 -4
8 -5
9 -6
10 -7
Run Code Online (Sandbox Code Playgroud)
为什么会这样?以及我如何实现预期的行为?