是否有更“pythonic”的方式从带有自定义分隔符的列表中生成字符串

Mar*_*het 2 python

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

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

输入:

a=[23,33,105,400]
Run Code Online (Sandbox Code Playgroud)

代码:

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

输出:

resid 23 or resid 33 or resid 105 or resid 400
Run Code Online (Sandbox Code Playgroud)

cri*_*007 8

使用字符串连接

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

您还可以使用 f 字符串

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