我想使用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
提交
取消