为了账号安全,请及时绑定邮箱和手机立即绑定

使用 python 模板字符串类渲染列表

使用 python 模板字符串类渲染列表

慕侠2389804 2023-09-12 10:28:58
我想使用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])


查看完整回答
反对 回复 2023-09-12
?
Qyouu

TA贡献1786条经验 获得超11个赞

尝试字符串格式化而不是模板,它甚至可能具有相同的后台引擎

subs = ''.join(['-* %s - \n' % item for item in items])


查看完整回答
反对 回复 2023-09-12
  • 2 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信