jessyjack
jessyjack

Reputation: 35

strip all strings in list of specific character

I have been looking for an answer to this for a while but keep finding answers about stripping a specific string from a list.

Let's say this is my list of strings

stringList = ["cat\n","dog\n","bird\n","rat\n","snake\n"]

But all list items contain a new line character (\n)

How can I remove this from all the strings within the list?

Upvotes: 1

Views: 470

Answers (4)

Sash Sinha
Sash Sinha

Reputation: 22472

You could also use map() along with str.rstrip:

>>> string_list = ['cat\n', 'dog\n', 'bird\n', 'rat\n', 'snake\n']
>>> new_string_list = list(map(str.rstrip, string_list))
>>> new_string_list
['cat', 'dog', 'bird', 'rat', 'snake']

Upvotes: 1

TechGeek
TechGeek

Reputation: 326

Since you can use an if to check if a new line character exists in a string, you can use the code below to detect string elements with the new line character and replace those characters with empty strings

stringList = ["cat\n","dog\n","bird\n","rat\n","snake\n"]
nlist = []
for string in stringList:
    if "\n" in string:
        nlist.append(string.replace("\n" , ""))
print(nlist)

Upvotes: 1

cards
cards

Reputation: 5033

By applying the method strip (or rstrip) to all terms of the list with map

out = list(map(str.strip, stringList))
print(out)

or with a more rudimental check and slice

strip_char = '\n'
out = [s[:-len(strip_char)] if s.endswith(strip_char) else s for s in stringList]
print(out)

Upvotes: 1

Tim Biegeleisen
Tim Biegeleisen

Reputation: 522817

Use a list comprehension with rstrip():

stringList = ["cat\n","dog\n","bird\n","rat\n","snake\n"]
output = [x.rstrip() for x in stringList]
print(output)  # ['cat', 'dog', 'bird', 'rat', 'snake']

If you really want to target a single newline character only at the end of each string, then we can get more precise with re.sub:

stringList = ["cat\n","dog\n","bird\n","rat\n","snake\n"]
output = [re.sub(r'\n$', '', x) for x in stringList]
print(output)  # ['cat', 'dog', 'bird', 'rat', 'snake']

Upvotes: 1

Related Questions