簡體   English   中英

是否有更“pythonic”的方式從帶有自定義分隔符的列表中生成字符串

[英]is there a more 'pythonic' way to generate a string from a list with customized separators

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

免責聲明:我是一名生物物理學家,對 Python 沒有深入的了解,但確實搜索並測試了以下組合: .format(a) / ([a]) / (*a) / (x for x in a) 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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM