【发布时间】:2022-07-07 18:24:20
【问题描述】:
我有包含占位符 {} 的字符串(str 列表),并希望将变量值包含到这些占位符中。这种字符串的一个例子是'test_variable = {}'。
我需要在列表中找到我要处理的索引,并按照描述替换{}。
目前,代码如下所示,find_occurrence_in_str_list() 是一个返回列表中第一次出现的搜索字符串的简单函数:
def find_occurrence_in_str_list(lines, findstr, start_index=0):
for i in range(start_index, len(lines)):
if findstr in lines[i]:
return i
# Examples
variable_value = 10
strlist = ['example = {}', 'test_variable = {}']
# Code in question
index = find_occurrence_in_str_list(strlist, 'test_variable')
strlist[index] = strlist[index].format(variable_value)
这完全没问题。但是,由于我有很多这样的替换,因此需要更好的可读性,尤其是单行,而不是最后两行。目前,我只是想出了这个,它调用了两次搜索函数并且不是真的更具可读性:
strlist[find_occurrence_in_str_list(strlist, 'test_variable')] = strlist[find_occurrence_in_str_list(strlist, 'test_variable')].format(variable_value)
有什么方法可以就地格式化字符串,而不是只返回新字符串并需要手动替换它?
【问题讨论】:
-
如果您的代码按预期工作,那么问题出在哪里?
-
您可以轻松地将您的:
Code in question转换为新功能。 -
你的函数可以添加一个
value参数,然后将return i改为lines[i] = lines[i].format(value)。之后,您可以拨打find_occurrence_in_str_list(strlist, 'test_variable', variable_value)
标签: python