Python将多个列表连接到一个包含%的字符串

时间:2013-06-26 02:08:41

标签: python list join

我有两个字符串列表,我想加入字符串。基本上,如果我有两个列表:

name = ['Name1', 'Name2', 'Name3']

link = ['Link1', 'Link2', 'Link3']

我希望将它们插入一个字符串,例如下面的字符串:

<a href="%s">%s

这可以使用join吗?还是需要使用for循环?

2 个答案:

答案 0 :(得分:3)

['<a href="%s">%s' % (n, l) for (n, l) in zip(name, link)]

但请不要忘记对nl进行适当编码,以防止出现安全问题。

答案 1 :(得分:0)

@ Ignacio对这个应用程序的答案非常棒。

根据预期用途,您可能需要使用正确数量的占位符创建一个字符串。

from itertools import chain, izip
name = ['Name1', 'Name2', 'Name3']    
link = ['Link1', 'Link2', 'Link3']

args = [i for i in chain.from_iterable(izip(name, link))]
placeholder = ''.join(["<a href=%s>%s"] * len (name))
# combined to make '<a href=%s>%s<a href=%s>%s<a href=%s>%s'
print placeholder % tuple(args)

两个有用的技巧(a)使用列表乘法来根据需要复制占位符字符串,以及(b)记住%需要一个元组参数。这是扩展占位符列表时常见的模式