0

我想输出一个列表,如:

operation1 = [
    'command\s+[0-9]+',
]

[0-9]+动态填充模式的位置。

所以我写道:

reg = {
    'NUMBER' : '^[0-9]+$',
    }

operation1 = [
    'command\s+'+str(reg[NUMBER]),
]
print operation1

但我收到一个错误:

Message File Name   Line    Position    
Traceback               
    <module>    <module1>   6       
NameError: name 'NUMBER' is not defined             

需要帮助!提前致谢。

4

4 回答 4

1

它应该是reg['NUMBER'],我猜。'NUMBER' 不是变量

于 2013-08-02T06:20:35.143 回答
0

NUMBER应该是一个字符串:

reg['NUMBER']
于 2013-08-02T06:19:16.723 回答
0

您需要将密钥放在引号中(Perl 允许不添加引号,但 Python 不允许):

operation1 = [
    'command\s+'+str(reg['NUMBER']),
]

您也不需要调用str

operation1 = [
    'command\s+'+reg['NUMBER'],
]

您甚至可以这样做(尽管与原始问题无关):

operation1 = [
    'command\s+{}'.format(reg['NUMBER']),
]
于 2013-08-02T06:20:12.263 回答
0

您正在使用NUMBER未定义的变量。我认为您想要使用的是 string 'NUMBER',如下所示:

>>> operation1 = ['command\s+[0-9]+',]
>>> reg = {'NUMBER' : '^[0-9]+$'}
>>> operation1 = [x + reg['NUMBER'] for x in operation1]
>>> operation1
['command\\s+[0-9]+^[0-9]+$']
于 2013-08-02T06:22:10.620 回答