2012-12-07 130 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第一