Fixing Python’s title Function
home // page // Monthly Archives: February, 2016
Technical

Fixing Python’s title Function

Python’s title function has some weird side-effects when you’re titlizing a string like, for example, a street name: >>> “62nd”.title() “62Nd” >>> “West 62nd st.”.title() “West 62Nd St.” 1 2 3 4 >>> “62nd”.title() “62Nd” >>> “West 62nd st.”.title() “West 62Nd St.” Here’s how you can fix this: import re def fixed_title(input_string): parts = re.split(r’\s’, input_string) for idx, value in enumerate(parts): if re.match(r'[A-Za-z]’, value[0]): parts[idx] = value[0].upper() + value[1:] return ‘ ‘.join(parts) 1 2 3 4 5 6 7 8…