Python Create a List From A to Z (‘A’-‘Z’ & ‘a’-‘z’)

πŸ’‘ Problem Formulation: Python is employed for a variety of tasks, one of which includes generating sequences. Frequently, you may encounter situations where you need to produce a list of alphabetic characters from 'a' to 'z' or 'A' to 'Z'. This could be required for generating unique identifiers, iterating over letters in a loop, or just initializing a list for testing purposes.

Here, we will explore several methods to create a list containing all lowercase and uppercase letters of the English alphabet in Python, showcasing the simplicity and flexibility of the language.

Method 1: List Comprehension with chr()

List comprehension in Python is a concise way to create lists. By combining it with the chr() function, you can generate a list of characters from their ASCII values. The chr() function returns the string representing a character whose Unicode code point is an integer.

  • For the lowercase alphabet, these integers range from 97 ('a') to 122 ('z').
  • For the uppercase alphabet, these integers range from 65 ('A') to 90 ('Z').
alphabet_list = [chr(i) for i in range(97, 123)]
print(alphabet_list)
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

ALPHABET_LIST = [chr(i) for i in range(65, 90)]
print(ALPHABET_LIST)
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y']

The code above creates a list alphabet_list containing characters from 'a' to 'z'. The range(97, 123) generates numbers from 97 up to but not including 123, and chr(i) converts each number to its corresponding lowercase letter.

Method 2: Using the string module

The string module in Python provides a collection of string constants. The string.ascii_lowercase and string.ascii_uppercase constants contain all the lowercase and uppercase letters, respectively. You can simply convert it into a list.

Here’s an example for both:

import string


alphabet_list = list(string.ascii_lowercase)
ALPHABET_LIST = list(string.ascii_uppercase)


print(alphabet_list)
print(ALPHABET_LIST)

Output:

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

Here, we import the string module and then call list() on string.ascii_lowercase and string.ascii_uppercase. This converts the string containing all the lowercase and uppercase letters into a list of individual letters.

Method 3: Loop with ord() and chr()

This method involves manually looping through the ASCII values of the characters 'a' to 'z' using a for loop. The ord() function gets the ASCII value of 'a', and then chr() is used to convert the ASCII values back to characters.

Example for lowercase:

alphabet_list = []
for letter in range(ord('a'), ord('z') + 1):
    alphabet_list.append(chr(letter))

print(alphabet_list)
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

The loop starts from the ASCII value of 'a' obtained with ord('a') and ends at the ASCII value of 'z' (inclusive), appending each character to the alphabet_list.

You can use a similar approach for uppercase ‘A’ to ‘Z’ list creation:

alphabet_list = []
for letter in range(ord('A'), ord('Z') + 1):
    alphabet_list.append(chr(letter))

print(alphabet_list)
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

Method 4: Using map() and chr()

Similar to the list comprehension method, we can use map() along with chr() to apply a function to each item of an iterable (in this case, a range of numbers) and collect the results.

Here’s the lowercase example:

alphabet_list = list(map(chr, range(97, 123)))

The map(chr, range(97, 123)) applies the chr function to each element in the given range, converting numbers to characters. The outer list() call converts the map object to a list of these characters.

The uppercase list of 'A' to 'Z' would be done similarly:

alphabet_list = list(map(chr, range(65, 91)))
print(alphabet_list)
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

Summary/Discussion

Generating a list from lowercase 'a' to 'z' and uppercase 'A' to 'Z' is a straightforward task in Python that can be accomplished in various idiomatic ways.

  • The list comprehension method with chr() is efficient and elegant.
  • Leveraging the string module is arguably the clearest and most Pythonic.
  • Looping with ord() and chr() gives control over the iteration, while using map() and chr() is functional and succinct.

πŸ‘‰ How to Create a List from 1 to N