str = 'I love %s and %s, he loves %s and %s.'
I want to use this format to display
I love apple and pitch, he loves apple and pitch.
Only add two variable please, but need a way to use it twice in one sentence.
Use a dict:
>>> 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.'
Or use the newer format function, which was introduced in 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'
Note: Calling a variable str would mask the built-in function str([object]).
format rather than a dictionary? Or is it just a matter of personal preference?.format spec just covers more cases. A similar question was asked here: stackoverflow.com/q/5082452/89391. My personal preference is to use % for brevity and performance and .format, if readability is improved.
str.