我有一个计数器列表
counters = ['76195087', '963301809', '830123644', '60989448', '0', '0', '76195087', '4006066839', '390361581', '101817210', '0', '0']
我想使用其中一些计数器创建一个字符串....
cmd = 'my_command' + counters[0:1]
但我发现我无法连接字符串和列表。
最后我必须拥有的是一个如下所示的字符串:
my_command 76195087
如何从列表中获取这些数字并让它们像字符串一样?
答案 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.popen
或os.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]
当然,要注意不要将索引变量增加到超出列表大小的范围。