inserting characters at the start and end of a string
PythonPython Problem Overview
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
Python Solutions
Solution 1 - Python
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 = 1
n = 2
yourstring = ("L" * m) + yourstring + ("L" * n)
Solution 2 - Python
You can also use join:
yourstring = ''.join(('L','yourstring','LL'))
Result:
>>> yourstring
'LyourstringLL'
Solution 3 - Python
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)
Solution 4 - Python
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)
Solution 5 - Python
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")
Solution 6 - Python
Let's say we have a string called yourstring:
for x in range(0, [howmanytimes you want it at the beginning]):
yourstring = "L" + yourstring
for x in range(0, [howmanytimes you want it at the end]):
yourstring += "L"
Solution 7 - Python
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 string
for 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)