У меня есть список значений, которые я хочу вставить в скобки в f-строку. Длина списка время от времени будет разной, поэтому я буду делать строку с правильной длиной для каждого случая. Идея заключалась в том, чтобы создать строку нужной длины, а затем вставить ее в f-строку. Это не удается, потому что он читается как строка.
Есть ли другие обходные пути для получения того же результата или это функция с f-строками, о которых я не знаю? Это мой код до сих пор:
values = [['First Name Last name', 20],['First Name Last name', 25],['First Name Last name', 30]]
test = [1]*3
for i in range(3):
val = f'''values[{i}]''' #First create innerpart
test[i] = f'''({{{val}}})''' #Then encapsulate it in curly brackets and paranthesis
insert = ' '.join(test)
f'''Test {insert}'''
Выход:
'Test ({values[0]}) ({values[1]}) ({values[2]})'
Мой желаемый результат:
'Test('First Name Last Name',20) ('First Name Last Name',25) ('First Name Last Name',30)'
Я безуспешно пытался найти способы избежать кавычек в строке.
test[i] = f"({values[i]})"
вы можете использовать индексацию списка (или почти любое выражение Python) в строке f. Содержимое строки не имеет ничего общего с тем, как вы вставляете ее в fstring.
Этот более простой подход - это то, что вам нужно:
string = "Test"
for val in values:
string += f"({', '.join(str(elem) for elem in val)}) "
print(string[:-1])
Вывод:
'Test(First Name Last name, 20) (First Name Last name, 25) (First Name Last name, 30)'
Нет необходимости экранировать фигурные скобки, просто соедините все элементы в каждом списке и правильно отформатируйте их.
Отвечает ли это на ваш вопрос? Как экранировать фигурные скобки в f-строках?. Таким образом, вы должны использовать 2 скобки вместо одной.