#python-3.x #list
#python-3.x #Список
Вопрос:
У меня есть список с некоторыми переменными, которые я хотел заменить:
intros = [
"Hi, my name is {name} and I'm {age}",
"I'm {age} years old",
"My name is {name} and I live in {city}"
]
Я знаю, что в этом списке переменные name
age
и city
существуют. Чего я не знаю, так это того, существуют ли все они в каждом элементе или некоторые из них могут отсутствовать. Я попытался создать общий способ сделать это, но он работает не так, как ожидалось.
def build_intros(introductions, *args):
formatted_intros = []
for arg in args:
for intro in intros:
vars_to_replace = list(set(re.findall("{([^}] )}", intro)))
for var_to_replace in vars_to_replace:
intro = intro.replace("{" var_to_replace "}", arg)
formatted_intros.append(intro)
name = "John"
age = "22"
city = "Texas"
build_intros(introductions, name, age, city)
Ответ №1:
Здесь у вас есть еще один пример
intros = [
"Hi, my name is {name} and I'm {age}",
"I'm {age} years old",
"My name is {name} and I live in {city}"
]
for i in intros:
print(i.format(name = "ads", age="49", city="New York"))
Ответ №2:
name = "John"
age = "22"
city = "Texas"
intros = [
f"Hi, my name is {name} and I'm {age}",
f"I'm {age} years old",
f"My name is {name} and I live in {city}"
]
print(intros)
Это будет работать.
https://www.geeksforgeeks.org/formatted-string-literals-f-strings-python/
Эта ссылка объяснит, как мы используем f-строки
Комментарии:
1. Спасибо @Divyessh за ответ. Как я мог бы сделать это в функции? Например, я бы передал конфигурацию функции, и она вернула бы форматированную конфигурацию?