我想使用Template从列表开始的字符串类。我开始于:from string import Template
temp = Template('-* $item - \n')
items = ["alpha", "beta", "gama"]
subs = ''.join([temp.substitute(item) for item in items])这会失败,因为它需要字典而不是列表。结果应该是:-* alpha -
-* beta -
-* gama -一些限制:我知道可以使用它来完成,append但我想要传递模板的灵活性,其中一些比示例中的更复杂应该适用于 python2 和 3理想情况下会更像 jinja2 或 django 模板渲染,但不幸的是我无法添加第三方包,此外我只需要变量和列表替换。
2 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
substitute
需要知道$item
模板中的占位符应该替换为什么,因此要么提供一个映射字典:
subs = ''.join([temp.substitute({'item': item}) for item in items])
或者,正如 @Rfroes87 在评论中提到的,item
作为 kwarg 传递:
subs = ''.join([temp.substitute(item=item) for item in items])
Qyouu
TA贡献1786条经验 获得超11个赞
尝试字符串格式化而不是模板,它甚至可能具有相同的后台引擎
subs = ''.join(['-* %s - \n' % item for item in items])
添加回答
举报
0/150
提交
取消