String lower and upper
This page was last reviewed on Nov 16, 2022.
Dot Net Perls
Lower, upper. All letters are either lowercase or uppercase. We can change the case of characters in Python with the lower and upper methods.
String casing. More powerful methods such as capitalize and title() also exist. We cover the basic methods (upper and lower) first, and then explore isupper and islower.
An example. Often we need to uppercase (or lowercase) strings. With the upper and lower methods, we apply the needed transformations. These methods do not affect non-letter characters.
Tip We never need to call upper() on a string that is already uppercased. Please see the isupper and islower methods.
value = "Tree 5" # Uppercase the string. x = value.upper() print(x) # Lowercase the string. y = value.lower() print(y)
TREE 5 tree 5
Isupper, islower. Is a string already uppercase or lowercase? We can tell this easily with the isupper and islower methods. These two methods are often used with if-statements.
Also Please see the performance test. Is lower is used to improve speed. With it, we can avoid copying strings.
value1 = "ABC123" value2 = "abc123" # Method can be used in an if-statement. if value1.isupper(): print(1) # Call methods on both strings. print(value1.isupper()) print(value2.isupper()) print(value1.islower()) print(value2.islower())
1 True False False True
Capitalize. This method affects only the first letter in a string. It changes it to be uppercase. If the first character is not a letter, nothing happens.
Here Please notice that the variable "s" is assigned to the result of capitalize().
Tip This means capitalize() does not change the existing string in-place. It creates a new copy of the string in memory and returns that.
# An input string. s = "perls" # Capitalize and assign. s = s.capitalize() print(s)
Title. Strings have a title method. This method is not smart. But it does help with many common strings. It capitalizes each word in a string.
Warning Title will capitalize words that are not supposed to be capitalized, like "of" and "and."
Thus A custom implementation (not the title method) would be needed if your requirements are more complex.
value = "the unbearable lightness of being" # Convert to title case. result = value.title() print(result)
The Unbearable Lightness Of Being
Istitle. This is a less-useful method. It scans a string and determines if the string has capital letters for each word. It can be used to avoid calling title() on strings.
Note As with the title method, istitle will become confused on certain words. It requires all words, even "and" to be capitalized.
value1 = "A Car" value2 = "A car" value3 = "a Car" value4 = "A123" value5 = "a123" # Test istitle method. print(value1.istitle()) print(value2.istitle()) print(value3.istitle()) print(value4.istitle()) print(value5.istitle())
True False False True False
Benchmark, lower. The islower method can be used as an optimization. Before calling lower() we can check whether the string is already lowercase.
Version 1 This version of the code calls the lower() method on every iteration through the loop.
Version 2 This version uses islower() before calling lower(). It never calls lower() because the string is already lowercase.
Result The code that checks islower() first is faster. This optimization will only work if your data is usually lowercase.
import time value = "intuitive" print(time.time()) # Version 1: lower. i = 0 while i < 10000000: v = value.lower() i += 1 print(time.time()) # Version 2: islower and lower. i = 0 while i < 10000000: if not value.islower(): v = value.lower() i += 1 print(time.time())
1384626116.650 1384626122.033 lower(): 5.38 s 1384626124.027 islower() and lower(): 1.99 s
Lower dictionary. We can use a dictionary to avoid lowercasing the same string many times. This can speed up the lowercase operation—the cache may be 10 times faster.
A summary. Text processing often involves normalizing the casing of strings. With the lower method and its friend upper(), we do this.
Testing cases. Performance is improved in many programs by using islower() and isupper(). This reduces work but may introduce complexity.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on Nov 16, 2022 (edit link).
© 2007-2024 Sam Allen.