按顺序打印列表元素,作为变量

时间:2015-11-16 12:31:34

标签: python regex list

我有一个这样的清单:

>>> 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]'

2 个答案:

答案 0 :(得分: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%'

答案 1 :(得分: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%