2012-12-07 127 views
2

我正在使用Python 3.2,並且我有一個列表,其中元素的數量可能會因原始輸入而異。如何從列表中打印元素,但是當我不知道列表中元素的確切數量時,在最後一個元素之前添加'and'?從Python列表中打印?

+0

所以'[1,2,3,4,5]''是1,2,3,4和5'? –

回答

3

對於被叫floep

print('%s and %s' % (', '.join(floep[:-1]), floep[-1])) 

正如評論列表,可能需要一個映射非字符串

print('%s and %s' % (', '.join(str(x) for x in floep[:-1]), floep[-1])) 
+1

我對python 3.2並不熟悉,所以我可以完全脫離基地,但會''.join在一個int列表中工作?我必須先映射(str,list),然後才能加入python2.7 – IamAlexAlright

+0

說'map(lambda x:str(x),...'當你可以說'map(str,...'看起來有點像愚蠢的。 –

+0

好的,這是怎麼回事?'[str(x)for x in floep [: - 1]]'漂亮? – Mark

0

試試這個:

for i in range(len(list)): 
    if i=len(list)-2: 
     print('and') 
    print(len[i]) 
2

的名單,a

a = map(str, a) 
print(', '.join(a[:-1]) + ', and ' + a[-1]) 

編輯:相信IamAlexAlright是正確大約需要一個map第一