有没有更'pythonic'的方法可以从带有自定义分隔符的列表生成字符串



我想知道是否有比下面的方法更pythonic的方法从列表中生成字符串。

免责声明:我是一名生物物理学家,对 python 没有高级知识,并且确实搜索了它并测试了以下组合:resid {}.format(a) / ([a]) / (*a) / (x for x in a)广泛,但可能我不知道要寻找什么......我知道下面的代码有效,但我不清楚为什么列出的任何代码都不起作用。

输入:

a=[23,33,105,400]

法典:

c=""
for x in a[0:-1]: 
c = c + "resid {} or ".format(x)
c=c+"resid {}".format(a[-1])
print(c)

输出:

resid 23 or resid 33 or resid 105 or resid 400

使用字符串连接

" or ".join("resid {}".format(x) for x in [23,33,105,400])
# 'resid 23 or resid 33 or resid 105 or resid 400'

您也可以使用 f 字符串

" or ".join(f'resid {x}' for x in [23,33,105,400])

您可以按如下方式创建格式字符串:

format_string = (len(a)-1) * 'resid {} or ' + 'resid {} '

然后通过以下方式对其应用 A:

print(format_string.format(*a))

最新更新