It's a simple question. I have a generic string and I want to replace an asterisk *
with arguments provided.
'* is the capital of *'
If I shall give two arguments ('Berlin','Germany')
, I should get
'Berlin is the capital of Germany'
It's an easy problem, and I can solve it, but I am looking for one line solution where every positional argument replaces the corresponding *
. I think, I have seen something of this type (*) ...(*)
, but can't recollect. Someone has any idea?
CodePudding user response:
You have many ways to do this, a simple one if you have tuples of 2 elements:
t = ('Berlin', 'Germany')
'{} is the capital of {}'.format(*t)
or
'%s is the capital of %s' % t
output: 'Berlin is the capital of Germany'
CodePudding user response:
You could use an f-String like this:
city = "Berlin"
country = "Germany"
print(f"{city} is the capital of {country}")
Basically, you're no longer using arguments and formatting, you're putting the python code directly into the string.
CodePudding user response:
If you replace the '*' with '{}', you can use the format
method:
s = '* is the capital of *'
replacement = ['Berlin', 'Germany']
print(s.replace('*', '{}').format(*replacement))