我有两个字符串列表,我想加入字符串。基本上,如果我有两个列表:
name = ['Name1', 'Name2', 'Name3']
link = ['Link1', 'Link2', 'Link3']
我希望将它们插入一个字符串,例如下面的字符串:
<a href="%s">%s
这可以使用join吗?还是需要使用for循环?
答案 0 :(得分:3)
['<a href="%s">%s' % (n, l) for (n, l) in zip(name, link)]
但请不要忘记对n
和l
进行适当编码,以防止出现安全问题。
答案 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)记住%需要一个元组参数。这是扩展占位符列表时常见的模式