Problem Formulation and Solution Overview
Preparation
import re
Method 1: Use replace()
This method uses replace()
from Python’s built-in string library to remove the comma/commas and return a new string with the modifications made.
Example 1: Remove all Commas from a String
proverb = 'In the valley, of the blind the one eyed man is king.' result = proverb.replace(',', '') print(result)
This code declares a string containing a single comma and saves it to proverb
.
Next, replace()
is appended to the string (proverb.replace()
), and the arguments passed to the same are as follows:
- The first argument is the character to replace/remove (
','
). - The second argument is the character to replace the first argument with (
''
). In this case, an empty string.
Finally, the result
is saved and output to the terminal.
Output
In the valley of the blind the one-eyed man is king.
OR
Example 2: Remove One Comma from a String
What if your string had two (2) or more commas? How could we remove only the first occurrence and leave the remaining?
proverb = 'In the valley, of the blind, the one eyed man is king.' result = proverb.replace(',', '', 1) print(result)
This could be done by passing a third argument to replace():
the number of occurrences (count
) to remove. In this case, the first comma is removed, and the other remains (proverb.replace(',', '', 1)
).
Finally, the result
is saved and output to the terminal.
π‘ Note: When passing count
to replace()
, it starts removing the specified number of the selected character(s) from the left of the string.
Output
In the valley of the blind, the one-eyed man is king.
Perfect!
Method 2: Use Regex
This method calls the re
library, removes all specified character occurrences, and returns a new string with modifications.
proverb = 'In the valley, of the blind the one eyed man is king.' result = re.sub(',', '', proverb) print(result)
This code declares a string containing a single comma and saves it to proverb
.
Next, re.sub()
is called with three (3) arguments:
- The first argument is the character to replace/remove (
','
). - The second argument is the character to replace the first argument with (
''
). In this case, an empty string. - The third argument is the string to apply this to (
proverb
).
Finally, the result
is saved and output to the terminal.
Output
In the valley of the blind the one-eyed man is king.
π‘ Note: Unlike Method 1, this method does not offer the option to enter a specified count (number of occurrences) to remove. In this case, all occurrences will be removed.
Method 3: Use List Comprehension
This method uses List Comprehension
and a for
to loop to evaluate, then split the line on the specified character (proverb.split(',')
) and remove same. A List
is returned.
proverb = 'In the valley, of the blind, the one eyed man is king.' result = [x.strip() for x in proverb.split(',')] print(result)
This code declares a string containing two (2) commas and saves it to proverb
.
Next, split()
is called and passed the character to split the string on (proverb.split(',')
).
Finally, the result
is saved and output to the terminal in a List
format containing three (3) elements.
Output
['In the valley', 'of the blind', 'the one-eyed man is king.']
Method 4: Use a Lambda and split()
This method uses a Lambda
to loop through, strip()
, and split()
the string on a specified character. Then, the specified character(s) are removed, and the results convert to a map()
object, then to a List
.
proverb = 'In the valley, of the blind, the one-eyed man is king.' result = list(map(lambda s: s.strip(), proverb.split(','))) print(result)
This code declares a string containing two (2) commas and saves it to proverb
.
Next, a Lambda
is used to strip()
the string, and split()
on the comma character (proverb.split(',')
), creating three (3) elements.
When map()
is applied to the Lambda
, an object similar to the following is created.
<map object at 0x000001A7E80E6D40>
Finally, the object is converted to a List
, and the result
is sent to the terminal in this format containing three (3) elements.
Output
['In the valley', 'of the blind', 'the one-eyed man is king.']
Method 5: Use replace() and split()
This simple method uses replace()
and split()
on one line to remove all occurrences of the specified character (','
) and return a List
.
proverb = 'In the valley, of the blind, the one-eyed man is king.' result = proverb.replace(',', '').split(',') print(result[0])
This code declares a string containing two (2) commas and saves it to proverb
.
Next, replace()
is appended to proverb
, which removes the specified character(s) from the string. Then, split()
splits the line on the specified character (','
).
A list containing one (1) element returns.
Finally, to output result
without the surrounding brackets [0]
must be applied to the end.
Output
In the valley of the blind the one-eyed man is king.
Bonus: Remove Commas from a Text File
What happens if you want to remove a specified character from all lines in a flat-text file? A simple one-liner solution that removes commas and newline characters is based on the List Comprehension
expression [line.replace(',', '').replace('\n', '') for line in open('file.txt')]
.
# One-Liner: result = [line.replace(',', '').replace('\n', '') for line in open('proverbs.txt')] print(result)
Contents of proverbs.txt
In the country, of the blind the one-eyed man is king. |
This code opens and reads the contents of proverbs.txt
one line at a time.
Each line is evaluated, and the specified character is removed (','
). This is called once again as we also want to remove the newline character (‘\n
‘).
Finally, the output saves to result
and sent to the terminal in a List
format containing three (3) elements.
Output
['In the country of the blind the one-eyed man is king.',
'In the valley of the blind the one-eyed man is king.',
'In the city of the blind the one-eyed man is king.']