我想知道是否有比下面的方法更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))