我有一个包含以下元素的字符串列表。此列表可以包含1,2个或更多元素。
list=['abc', 'xyz']
我想使用它们并创建一个如下所示的单行字符串,并稍后在其他一些字符串串联中使用它(创建命令):
Move abc to folder c:\data, move xyz to folder c:\data
直到现在,我都可以使用以下命令进行打印:
for i in list:
print("Move '" + i + "' to folder 'C:\DATA'",end=", ")
输出为:
Move 'xyz' to folder 'c:\DATA', Move 'xyz' to folder 'c:\DATA',
我想删除最后一个逗号,并在可能的情况下将此输出分配给变量。最后,范围是生成并执行命令(使用子过程模块),如下所示:
restore database db move 'xyz' to folder 'c:\data', Move 'xyz' to folder 'c:\DATA' -server servername -instance instance_name
答案 0 :(得分:2)
您可以通过Python中的join
函数来完成此操作。
>>> lst = ['abc', 'xyz']
>>> s = ', '.join([r'Move {} to folder c:\data'.format(f) for f in lst])
>>> print(s)
Move abc to folder c:\data, Move xyz to folder c:\data
答案 1 :(得分:1)
您可以使用join
:
list=['abc', 'xyz']
print(", ".join([ "Move '{0}' to folder 'c:\{0}'".format(item) for item in list]))
# Move abc to folder c:\abc, Move xyz to folder c:\xyz
答案 2 :(得分:1)
当您打印某些内容时,它是一次性的。一旦在控制台 1 上显示,您为打印而创建的字符串就消失了。取而代之的是,您可能想用格式化的数据在内存中构建一个字符串,然后打印它,或执行其他操作。
字符串的join
方法将允许您仅在元素之间插入逗号。 format
方法将允许您使用自定义数据来格式化各个元素:
mystring = ", ".join("Move '{}' to folder 'C:\\DATA'".format(i) for i in mylist)
现在您有了一个可以打印,连接,拆分,传递到子流程等的字符串。
1 您可以打印到内存中的文件并以这种方式提取输出,但是我们现在不再赘述。