I am new and trying to find a way to insert a number of L's at the beginning and end of a string. So if I have a string which says

"where did I put my cupcake this morning"

And I want to insert 1 L at the start and 2 L's at the end, so it looks like: "Lwhere did I put my cupcake this morningLL" How do I do this. thank you

8

Best Answer


Strings are immutable so you can't insert characters into an existing string. You have to create a new string. You can use string concatenation to do what you want:

yourstring = "L" + yourstring + "LL"

Note that you can also create a string with n Ls by using multiplication:

m = 1n = 2yourstring = ("L" * m) + yourstring + ("L" * n)

For completeness along with the other answers:

yourstring = "L%sLL" % yourstring

Or, more forward compatible with Python 3.x:

yourstring = "L{0}LL".format(yourstring)

You can also use join:

yourstring = ''.join(('L','yourstring','LL'))

Result:

>>> yourstring'LyourstringLL'

If you want to insert other string somewhere else in existing string, you may use selection method below.

Calling character on second position:

>>> s = "0123456789">>> s[2]'2'

Calling range with start and end position:

>>> s[4:6]'45'

Calling part of a string before that position:

>>> s[:6]'012345'

Calling part of a string after that position:

>>> s[4:]'456789'

Inserting your string in 5th position.

>>> s = s[:5] + "L" + s[5:]>>> s'01234L56789'

Also s is equivalent to s[:].

With your question you can use all your string, i.e.

>>> s = "L" + s + "LL"

or if "L" is a some other string (for example I call it as l), then you may use that code:

>>> s = l + s + (l * 2)

Adding to C2H5OH's answer, in Python 3.6+ you can use format strings to make it a bit cleaner:

s = "something about cupcakes"print(f"L{s}LL")

Let's say we have a string called yourstring:

for x in range(0, [howmanytimes you want it at the beginning]):yourstring = "L" + yourstringfor x in range(0, [howmanytimes you want it at the end]):yourstring += "L"

you can use f strings for this

foo = "where did I put my cupcake this morning"bar = 'L'foobar = f'{bar*10}{foo}'print(foobar)

you can replace 10 by how many times you want to put L's in your stringfor end also you can do the same

foo = "where did I put my cupcake this morning"bar = 'L'foobar = f'{bar*10}{foo}{bar*10}'print(foobar)

You can easily prepend and append strings by using f-strings:

text = "where did I put my cupcake this morning"prepend = "L"append = "LL"print(f"{prepend}{text}{append}")# Result: "Lwhere did I put my cupcake this morningLL"

Or you can build a function that gives you more flexibility:

def prepend_and_append(text: str, prepend_char: str, prepend_times: int, append_char: str, append_times: int) -> str:return f"{prepend_char * prepend_times}{text}{append_char * append_times}"print(prepend_and_append(text, "L", 1, "L", 2))# Result: "Lwhere did I put my cupcake this morningLL"