]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
New implementation method for case conversion.
authorGuido van Rossum <guido@python.org>
Tue, 14 Jan 1992 18:31:29 +0000 (18:31 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 14 Jan 1992 18:31:29 +0000 (18:31 +0000)
Lib/string.py
Lib/stringold.py

index 141204810504872ffa8198bcff2b6670bba92f63..f7d4af6b1e1a390145c585240071ef0190ee3542 100644 (file)
@@ -12,34 +12,32 @@ hexdigits = digits + 'abcdef' + 'ABCDEF'
 octdigits = '01234567'
 
 # Case conversion helpers
-_caseswap = {}
-for i in range(26):
-       _caseswap[lowercase[i]] = uppercase[i]
-       _caseswap[uppercase[i]] = lowercase[i]
+_idmap = ''
+for i in range(256): _idmap = _idmap + chr(i)
+_lower = _idmap[:ord('A')] + lowercase + _idmap[ord('Z')+1:]
+_upper = _idmap[:ord('a')] + uppercase + _idmap[ord('z')+1:]
+_swapcase = _upper[:ord('A')] + lowercase + _upper[ord('Z')+1:]
 del i
 
 # convert UPPER CASE letters to lower case
 def lower(s):
        res = ''
        for c in s:
-               if 'A' <= c <= 'Z': c = _caseswap[c]
-               res = res + c
+               res = res + _lower[ord(c)]
        return res
 
 # Convert lower case letters to UPPER CASE
 def upper(s):
        res = ''
        for c in s:
-               if 'a' <= c <= 'z': c = _caseswap[c]
-               res = res + c
+               res = res + _upper[ord(c)]
        return res
 
 # Swap lower case letters and UPPER CASE
 def swapcase(s):
        res = ''
        for c in s:
-               if 'a' <= c <= 'z' or 'A' <= c <= 'Z': c = _caseswap[c]
-               res = res + c
+               res = res + _swapcase[ord(c)]
        return res
 
 # Strip leading and trailing tabs and spaces
index 141204810504872ffa8198bcff2b6670bba92f63..f7d4af6b1e1a390145c585240071ef0190ee3542 100644 (file)
@@ -12,34 +12,32 @@ hexdigits = digits + 'abcdef' + 'ABCDEF'
 octdigits = '01234567'
 
 # Case conversion helpers
-_caseswap = {}
-for i in range(26):
-       _caseswap[lowercase[i]] = uppercase[i]
-       _caseswap[uppercase[i]] = lowercase[i]
+_idmap = ''
+for i in range(256): _idmap = _idmap + chr(i)
+_lower = _idmap[:ord('A')] + lowercase + _idmap[ord('Z')+1:]
+_upper = _idmap[:ord('a')] + uppercase + _idmap[ord('z')+1:]
+_swapcase = _upper[:ord('A')] + lowercase + _upper[ord('Z')+1:]
 del i
 
 # convert UPPER CASE letters to lower case
 def lower(s):
        res = ''
        for c in s:
-               if 'A' <= c <= 'Z': c = _caseswap[c]
-               res = res + c
+               res = res + _lower[ord(c)]
        return res
 
 # Convert lower case letters to UPPER CASE
 def upper(s):
        res = ''
        for c in s:
-               if 'a' <= c <= 'z': c = _caseswap[c]
-               res = res + c
+               res = res + _upper[ord(c)]
        return res
 
 # Swap lower case letters and UPPER CASE
 def swapcase(s):
        res = ''
        for c in s:
-               if 'a' <= c <= 'z' or 'A' <= c <= 'Z': c = _caseswap[c]
-               res = res + c
+               res = res + _swapcase[ord(c)]
        return res
 
 # Strip leading and trailing tabs and spaces