2015-11-16 120 views
0

我有一個列表,像這樣:打印列表元素,作爲變量

>>> mylist=['a', 'b', 'c', 'd', 'e'] 

我要在以下格式打印語句。

>>> q=('%mylist% OR ' * len(mylist))[:].strip().rstrip('OR').strip() 

Q的輸出是:

>>> '%mylist% OR %mylist% OR %mylist% OR %mylist% OR %mylist%' 

但我想真正做到這一點:

'%a% OR %b% OR %c% OR %d% OR %e%' 

我怎麼能有這樣的輸出?

我的意思是我想要做的事,如:

'%mylist[0]% OR %mylist[1]% OR %mylist[2]% OR %mylist[3]% OR %mylist%[4]' 

回答

5

使用list comprehensionjoin

>>> l = ['a', 'b', 'c', 'd', 'e'] 
>>> ' OR '.join(['%' + i + '%' for i in l]) 
'%a% OR %b% OR %c% OR %d% OR %e%' 
>>> ' OR '.join('%' + i + '%' for i in l) 
'%a% OR %b% OR %c% OR %d% OR %e%' 
+0

@PeterWood哦,謝謝。由於我經歷了低速網絡,因此需要很長時間才能獲取文檔鏈接。 –

2
>>> l = ['a', 'b', 'c', 'd', 'e'] 
>>> s = "" 
>>> import re 
>>> for i in l: 
     s += ("%"+i+"% OR ") 
>>> res = re.sub(r"(.*)OR\s*$", r"\1", s) 
>>> print res 
%a% OR %b% OR %c% OR %d% OR %e% 
+0

'res = res.rstrip('OR')'比're.sub'更快並且更容易理解。 –