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
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 L
s 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"