Python о нескольких% s в строке - PullRequest
9 голосов
/ 14 декабря 2010
str = 'I love %s and %s, he loves %s and %s.' 

Я хочу использовать этот формат для отображения

Я люблю яблоко и смолу, он любит яблоко и смолу.

Пожалуйста, добавьте только две переменные, но нужен способ использовать их дважды в одном предложении.

Ответы [ 2 ]

25 голосов
/ 14 декабря 2010

Используйте диктовку:

>>> s = 'I love %(x)s and %(y)s, he loves %(x)s and %(y)s.'
>>> s % {"x" : "apples", "y" : "oranges"}
'I love apples and oranges, he loves apples and oranges.'

Или используйте более новую функцию format, которая была представлена ​​в 2.6:

>>> s = 'I love {0} and {1}, she loves {0} and {1}'
>>> s.format("apples", "oranges")
'I love apples and oranges, she loves apples and oranges'

Примечание: вызов переменной str может привести к маскировке встроенной функции str([object]).

6 голосов
/ 14 декабря 2010
>>> str = 'I love %(1)s and %(2)s, he loves %(1)s and %(2)s.' % {"1" : "apple", "2" : "pitch"}
>>> str
'I love apple and pitch, he loves apple and pitch.'

Конечно, вы можете использовать другие имена, кроме «1» и «2». :)

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