Python:结合字符串和列表

时间:2011-11-27 18:48:44

标签: python string list concatenation

我有一个计数器列表

counters = ['76195087', '963301809', '830123644', '60989448', '0', '0', '76195087', '4006066839', '390361581', '101817210', '0', '0']

我想使用其中一些计数器创建一个字符串....

cmd = 'my_command' + counters[0:1]

但我发现我无法连接字符串和列表。

最后我必须拥有的是一个如下所示的字符串:

my_command 76195087

如何从列表中获取这些数字并让它们像字符串一样?

4 个答案:

答案 0 :(得分:4)

如果您只想要列表中的单个元素,只需索引该元素:

cmd = 'my_command ' + counters[0]

如果要连接多个元素,请使用字符串的'join()'方法:

cmd = 'my_command ' + " ".join(counters[0:2]) # add spaces between elements

答案 1 :(得分:4)

您可以在列表中join使用join

cmd = 'my_command' + ''.join(counters[:1])

但您不应该首先构建类似的命令并将其提供给os.popenos.system。相反,使用处理内部的subprocess模块(并转义有问题的值):

import subprocess
# You may want to set some options in the following line ...
p = subprocess.Popen(['my_command'] + counters[:1])
p.communicate()

答案 2 :(得分:3)

如果您只想附加一个计数器,可以使用

"my_command " + counters[0]

"%s %s" % (command, counters[0])

其中command是一个包含命令作为字符串的变量。如果您想附加多个计数器,' '.join()是您的朋友:

>>> ' '.join([command] + counters[:3])
'my_command 76195087 963301809 830123644'

答案 3 :(得分:1)

您必须访问列表的元素,而不是列表的子列表,如下所示:

cmd = 'my_command' + counters[0]

因为我猜你有兴趣在某些时候使用所有的计数器,所以使用一个变量来存储你当前正在使用的索引,并在你认为合适的地方增加它(可能在循环中)

idx = 0
cmd1 = 'my_command' + counters[idx]
idx += 1
cmd2 = 'my_command' + counters[idx]

当然,要注意不要将索引变量增加到超出列表大小的范围。