通过 for 循环列表构建 f 字符串

mul*_*rse 2 python for-loop list f-string

我想知道如何从此开始:

mylist = [10, 20, 30]
Run Code Online (Sandbox Code Playgroud)

对此:

'Quantity 10, quantity 20 quantity 30'
Run Code Online (Sandbox Code Playgroud)

我知道可以通过以下方式完成:

mystring = f"Quantity {mylist[0]}, quantity {mylist[1]} quantity {mylist[2]}"
Run Code Online (Sandbox Code Playgroud)

但是有没有一种方法可以在构造 f 字符串时合并 for 循环,而不必一一提供所有列表索引?

编辑:Quantityquantity、 和quantity恰好是同一个字符串,但它们可以是“ Quantity10, rank20 kingdom and sovrenity30”之类的任何内容。因此,数字之间会有不同的文本。

KJT*_*ard 7

您可以使用列表理解

", ".join([f"Quantity {x}" for x in mylist])
Run Code Online (Sandbox Code Playgroud)

如果你关心大小写......

f"Quantity {mylist[0]}, " + ", ".join([f"quantity {x}" for x in mylist[1:]])
Run Code Online (Sandbox Code Playgroud)

编辑:如果单词不同,您需要将它们压缩以方便理解

words=["word1", "word2", "word3"]
numbers=[10,20,30]

', '.join([str(word) + " " + str(number) for word,number in zip(words,numbers)]).capitalize()
Run Code Online (Sandbox Code Playgroud)