2013-11-21 102 views
2

例如,我有两个元素array = ['abc','def']的数组。 如何用一个函数打印整个数组。像这样:print "%s and %s" % array 这可能吗?我有预定数量的元素,所以我知道会有多少元素。在一个打印函数中的Python打印数组

编辑:

我想提出一个SQL INSERT语句,这样会有一些凭据,让我们说7,并在我的例子就应该是这样的:

("insert into users values(%s, \'%s\', ...);" % array) 

回答

7

你也可以做

print '{0} and {1}'.format(arr[0],arr[1]) 

或在您的情况

print "insert into users values({0}, {1}, {2}, ...);".format(arr[0],arr[1],arr[2]...) 

print "insert into users values({0}, {1}, {2}, ...);".format(*arr) 

幸福吗? 确保长度的数组索引匹配..

+0

这是更有可能的东西,我正在寻找,但如果它可能只是把一个数组在末尾 – jonjohnson

+0

是的,这是我一直在寻找! – jonjohnson

9

print ' and '.join(array) 

满足你吗?

2

您可以使用str.join

>>> array = ['abc', 'def'] 
>>> print " and ".join(array) 
abc and def 
>>> array = ['abc', 'def', 'ghi'] 
>>> print " and ".join(array) 
abc and def and ghi 
>>> 

编辑:

我上面的帖子是你原来的问题。以下是经过编辑的一个:

print "insert into users values({}, {}, {}, ...);".format(*array) 

注意的{}的数量必须array项目的数量相匹配。

1

如果输入数组是整型,那么你必须先转换成字符串类型数组,然后使用join方法,通过任何你想要的,或空间加盟。 e.g:

>>> arr = [1, 2, 4, 3] 
>>> print(", " . join(arr)) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: sequence item 0: expected string, int found 
>>> sarr = [str(a) for a in arr] 
>>> print(", " . join(sarr)) 
1, 2, 4, 3 
>>> 
0

另一种方法是:

print(" %s %s bla bla %s ..." % (tuple(array))) 

,你因为有数组中需要尽可能多的%s格式说明。打印功能需要%之后的元组,因此您必须使用tuple()将数组转换为元组。