Построение f-строки путем циклического перебора списка - PullRequest
0 голосов
/ 09 марта 2020

Я хотел бы знать, как go из этого:

mylist = [10, 20, 30]

к этому:

'Quantity 10, quantity 20 quantity 30'

Я знаю, что это можно сделать с помощью:

mystring = f"Quantity {mylist[0]}, quantity {mylist[1]} quantity {mylist[2]}"

но нет ли способа включить for-l oop при построении f-строки вместо необходимости указывать все индексы списка по одному?

Редактировать: Quantity, quantity и quantity могут быть одной и той же строкой, но они могут быть чем-то вроде 'Quantity 10, rank 20 kingdom and sovrenity 30'. Таким образом, между цифрами будет другой текст.

1 Ответ

2 голосов
/ 09 марта 2020

Вы можете использовать понимание списка

", ".join([f"Quantity {x}" for x in mylist])

И если вы заботитесь о заглавных буквах ....

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

РЕДАКТИРОВАТЬ: Если слова будут отличаться, вам нужно застегните их для понимания

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

', '.join([str(word) + " " + str(number) for word,number in zip(words,numbers)]).capitalize()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...