cph_sto
cph_sto

Reputation: 7585

Python: Replace characters in string at different positions with arguments

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?

Upvotes: 1

Views: 205

Answers (3)

c8999c 3f964f64
c8999c 3f964f64

Reputation: 1627

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.

Upvotes: 1

mozway
mozway

Reputation: 260640

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'

Upvotes: 2

LukasNeugebauer
LukasNeugebauer

Reputation: 1337

If you replace the '*' with '{}', you can use the format method:

s = '* is the capital of *'
replacement = ['Berlin', 'Germany']
print(s.replace('*', '{}').format(*replacement))

Upvotes: 0

Related Questions