emptybladder emptybladder -4 years ago 58
Python Question

Removing all punctuation from a list and return the entire list in Python

I have a list that I'm trying to strip all punctuation and the character "·" from and then returning that list without any of the above. However, when I try to return the list, only the first word of the list appears and I'm not sure where I went wrong with this.

Here is the list I'm trying to strip punctuation from:
['in·vis·i·ble', 'in·vis·i·bil·i·ty, ', 'in·vis·i·ble·ness, ', 'in·vis·i·bly, ', 'qua·si-in·vis·i·ble, ', 'qua·si-in·vis·i·bly, ', 'inˌvisiˈbility, ', 'inˈvisibleness, ', 'inˈvisibly, ']

Here's what I'm getting: ['invisible']

Here is a portion of my code (it's part of a larger function)

syl = []
for words in span:
if words not in syl:
for text in syl:
drop_sep = re.sub(r'·', '', text)
return drop_sep

Answer Source


words = ['in·vis·i·ble', 'in·vis·i·bil·i·ty, ', 'in·vis·i·ble·ness, ', 'in·vis·i·bly, ', 'qua·si-in·vis·i·ble, ', 'qua·si-in·vis·i·bly, ', 'inˌvisiˈbility, ', 'inˈvisibleness, ', 'inˈvisibly, ']

Use a list comprehension:

[word.replace('·', '') for word in words]
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download