Присвоение различных значений элементу в строке - PullRequest
6 голосов
/ 23 июня 2011

Я использую R. Допустим, у меня есть вектор городов, и я хочу использовать эти названия городов индивидуально в строке.

city = c("Dallas", "Houston", "El Paso", "Waco")

phrase = c("Hey {city}, what's the meaning of life?")

Итак, я хочу закончить четырьмя отдельными фразами.

"Hey Dallas, what's the meaning of life?"
"Hey Houston, what's the meaning of life?"
...

Есть ли в Python функция, аналогичная format (), которая позволит мне выполнить эту задачу простым / эффективным способом?

Хотел бы избежать чего-то подобного ниже.

for( i in city){
    phrase = c("Hey ", i, "what's the meaning of life?")
}

Ответы [ 2 ]

14 голосов
/ 23 июня 2011

Как насчет sprintf?

> city = c("Dallas", "Houston", "El Paso", "Waco")
> phrase = c("Hey %s, what's the meaning of life?")
> sprintf(phrase, city)
[1] "Hey Dallas, what's the meaning of life?"  "Hey Houston, what's the meaning of life?"
[3] "Hey El Paso, what's the meaning of life?" "Hey Waco, what's the meaning of life?"   
7 голосов
/ 23 июня 2011

В зависимости от того, насколько сложной это должно быть, простая вставка может выполнить эту работу:

paste("Hey ", city, ", what's the meaning of life", sep="")

делает то, что вы хотите.

@ Ответ Зака, sprintf имеет много преимуществхотя, как правильное форматирование парных символов и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...