Python打印string.split不带方括号

1 投票
3 回答
2064 浏览
提问于 2025-04-18 08:37

我有

cmd=arg[3:]

这段代码的输出是,比如说:

['file python parameter1=5 parameter2=456 ']

当我打印的时候,我想以这种格式打印 - python 文件参数..

我尝试了

print "%s %s %s" % (string.split(cmd[0])[1],string.split(cmd[0])[0],string.split(cmd[0])[2:])

这段代码的输出是

python 文件 ['parameter1=5 parameter2=456 ']

我该怎么做才能打印出参数部分,而不带方括号或引号呢?

谢谢。最后一部分我该怎么打印

3 个回答

0

建议使用 format 方法,而不是使用 % 这种老式的字符串格式化方式。

print "{0[1]} {0[0]} {0[2]}".format(cmd[0].split(None, 2)) 
0

你可以试试这样的写法:

' '.join(cmd[0].split()[2:])

而不是:

string.split(cmd[0])[2:]

另外,我建议你使用一个中间变量,这样就不用重复做三次相同的分割了……或者更好的是:

print ' '.join(cmd[0].split(' ', 2))

其实可以简单写成:

print cmd[0]

不过我想你不只是想打印出来而已……

1

你在让Python把一个列表变成字符串。这就是为什么你看到有方括号和引号的原因。你只需要用join这个方法,就可以把它再变成字符串。

" ".join(string.split(cmd[0])[2:])

或者如果你真的更喜欢用字符串模块的话

string.join(" ", string.split(cmd[0])[2:])

如果我在做代码审查的话,我会更喜欢看到这样的代码:

fname, interp, args = cmd[0].split(" ", 2)
print "%s %s %s" % (interp, fname, args)

撰写回答