0

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

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

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

我想将它们插入到一个字符串中,如下所示:

<a href="%s">%s

这可以使用 join 来完成还是我需要使用 for 循环?

4

2 回答 2

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

但是不要忘记适当地进行编码nl防止安全问题。

于 2013-06-26T02:10:06.523 回答
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) 记住 % 需要一个元组参数。这是扩展占位符列表时的常见模式

于 2013-06-26T03:01:14.510 回答