gpt4 book ai didi

python - 将字符串列表转换为模板化字符串列表

转载 作者:行者123 更新时间:2023-11-28 21:58:01 25 4
gpt4 key购买 nike

我的主要要求是将模板添加到字符串列表并将它们作为单个字符串加入。

def give_str(input_list, template, delimiter="()", joiner=""):
#Some operation happens here
return output_string

Input: give_str(["first", "second", "third"], ["count", "rank"], delimiter="()", joiner=",")
Output: "count(rank(first)),count(rank(second)),count(rank(third))"

现在,我正在做这样的事情:

def give_str(input_list, template, delimiter="()", joiner=","):
output_string = ""
template_string = delimiter[0].join(template) + delimiter[0]
item_close = delimiter[-1] * len(template)
output_string = joiner.join(template_string+item+item_close for item in input_list if item)
return output_string

我对添加多个字符串不满意,尽管这很简单直接。是否有可以简化此过程的内置库(仅内置,因为我无法安装任何第 3 方软件包)?

意义上的简化

还有一件事是隐含的,分隔符是单个字符或双字符。可能的分隔符:“,”、“|”、“()”、“[]”、...

注意:如果您投反对票,请评论您为什么认为它毫无用处。我和将来可能会遇到这个问题的人可能会从你的观点中学到一两件事。

最佳答案

更简洁的方法是使用 string.template

>>> from string import Template
>>> def give_str(input_list, template, delimiter="()", joiner=""):
s = Template("$temp$left$inner$right")
data = []
for elem in input_list:
for t in reversed(template):
elem = s.substitute(
temp=t,
left = delimiter[0],
right = delimiter[-1],
inner = elem)
data.append(elem)
return joiner.join(data)

>>> give_str(["first", "second", "third"], ["count", "rank"], delimiter="()", joiner=",")
'count(rank(first)),count(rank(second)),count(rank(third))'
>>> give_str(["first", "second", "third"], ["count", "rank"], delimiter="|", joiner=",")
'count|rank|first||,count|rank|second||,count|rank|third||'

关于python - 将字符串列表转换为模板化字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19243141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com