7 Creative Ways to Clean Up Python List Strings with Simple Replacements
This article walks through a Python list‑string cleaning problem, presenting seven distinct code solutions—including basic replace, set operations, regular expressions, and nested loops—each accompanied by runnable examples and output screenshots to help readers master string manipulation in lists.
1. Introduction
A Python enthusiast posted a question about removing unwanted characters (such as "#", "color", and "@") from strings inside a list. The original data looks like this:
The goal is simply to perform string replacement and obtain a clean list of unique items.
2. Implementation
Method 1
Using a single replace inside a loop:
lst = ['Red color', 'Orange#', 'Green', 'Orange @', "White"]
char_lst = ['#', 'color', '@']
temp = '----'.join(lst)
for i in char_lst:
temp = temp.replace(i, '')
res = temp.split('----')
res = list({i.strip() for i in res})
print(res)Method 2
Iterating over each element and checking suffixes:
lst = ['Red color', 'Orange#', 'Green', 'Orange @', "White"]
char_lst = ['#', 'color', '@']
flag = 0
set_1 = set()
for ls in lst:
for ch in char_lst:
if ls.endswith(ch):
set_1.add(ls.rstrip(ch).strip())
flag = 1
if flag == 0:
set_1.add(ls)
else:
flag = 0
new_lis = list(set_1)
print(new_lis)Method 3
Using a regular expression to extract capitalized words:
import re
lst = ['Red color', 'Orange#', 'Green', 'Orange @', "White"]
char_lst = ['#', 'color', '@']
s = ''.join(lst + char_lst)
dct = {i: 1 for i in re.compile(r'([A-Z][a-z]+)').findall(s)}
lis = list(dct.keys())
print(lis)Method 4
Combining set comprehension and stripping:
lst = ['Red color', 'Orange#', 'Green', 'Orange @', "White"]
char_lst = ['#', 'color', '@']
res1 = {i for i in lst if char_lst[0] not in i and char_lst[1] not in i and char_lst[2] not in i}
res2 = {i.strip(j).strip() for i in lst for j in char_lst if j in i}
res1.update(res2)
res = list(res1)
print(res)Method 5
Dictionary‑style comprehension turned into a set comprehension:
import re
lst = ['Red color', 'Orange#', 'Green', 'Orange @', "White"]
char_lst = ['#', 'color', '@']
s = ''.join(lst + char_lst)
st = {i for i in re.compile(r'([A-Z][a-z]+)').findall(s)}
lis = list(st)
print(lis)Method 6
Nested for loops with break to stop early:
lst = ['Red color', 'Orange#', 'Green', 'Orange @', "White"]
char_lst = ['#', 'color', '@']
st = []
for i in lst[:]:
for j in char_lst:
if ' ' in i:
st.append(i[:i.find(' ')])
break
elif j in i:
st.append(i[:i.find(j)])
break
else:
st.append(i)
break
res = list(set(st))
print(res)Method 7
Two‑pass replacement with duplicate removal:
lst = ['Redcolor', 'Orange#', 'Green', 'Orange@', "White"]
char_lst = ['#', 'color', '@']
for i in char_lst:
for index, item in enumerate(lst):
if i in item:
new_item = item.replace(i, '').strip()
lst[index] = new_item
if lst.count(new_item) > 1:
del lst[lst.index(new_item)]
print(lst)3. Conclusion
The article demonstrates multiple approaches to the same list‑string cleaning problem, showing that simple replace can work as well as more advanced set operations or regular expressions. Readers are encouraged to experiment with these snippets and join the author’s Python learning community for further assistance.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Python Crawling & Data Mining
Life's short, I code in Python. This channel shares Python web crawling, data mining, analysis, processing, visualization, automated testing, DevOps, big data, AI, cloud computing, machine learning tools, resources, news, technical articles, tutorial videos and learning materials. Join us!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
