2013-11-21 104 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()將數組轉換爲元組。