How to Create a List of the Alphabet

Rate this post

Problem Formulation and Solution Overview

In this article, you’ll learn how to create a list containing the alphabet in Python.

To make it more fun, we have the following running scenario:

Ms. Smith, a Grade 2 teacher at Oakwood Public School, wants to strengthen her student’s Alphabet skills and needs your help. She would like a script that does the following:

  • First, generate a list of the Alphabet in upper and lower case.
  • Next, display the upper case version with the lower case directly below.
  • Finally, show the characters evenly spaced out.

💬 Question: How would we write the Python code to accomplish this task?

We can accomplish this task by one of the following options:


Add the following code to the top of each code snippet. This snippet will allow the code in this article to run error-free.

import string

Method 1: Use ascii_uppercase and ascii_lowercase

The ascii_uppercase/ascii_lowercase methods return the respective case versions of the Alphabet. These values are immutable and return the same in any locale.

upperc = list(string.ascii_uppercase)
lowerc = list(string.ascii_lowercase)

frmt = "{:>5}"*26
print(frmt.format(*upperc))
print(frmt.format(*lowerc))

Knowing this, we could send the output to the terminal as is.

Unformatted Output (Snippet)

['A', 'B', 'C', 'D', 'E', 'F', …]
['a', 'b', 'c', 'd', 'e', 'f', …]

However, Ms. Smith would prefer that the output not contain quotes and be evenly spaced out. This can be accomplished by applying format() to the upperc and lowerc variables.

Formatted 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

Perfect!


Method 2: Use List Comprehension, chr(), range() and ord()

Using List Comprehension, the following generates upper and lower case versions of the Alphabet by passing ord() a single character and returning a Unicode value. This value then converts to a character.
The range for A-Z is 65-90, and a-z is 97-122.

upperc = [chr(value) for value in range(ord('A'), ord('Z') + 26)]
lowerc = [chr(value) for value in range(ord('a'), ord('a') + 26)]

frmt = "{:>5}"*26
print(frmt.format(*upperc))
print(frmt.format(*lowerc))

The upper and lower case Alphabets are created based on the above ranges and save to upperc/lowerc respectively.

Formatted 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

Method 3: Use List, map() and range()

The map() function converts each value in the selected range to a character and returns an object. This object is then converted to a List.

upperc = list(map(chr, range(65, 91)))
lowerc = list(map(chr, range(97, 123)))

frmt = "{:>5}"*26
print(frmt.format(*upperc))
print(frmt.format(*lowerc))

The upper and lower case Alphabets are created based on the above ranges and save to upperc/lowerc respectively.

Formatted 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

Method 4: Use a For Loop, range() and ord()

The range() function combined with ord() produces a numeric Unicode for each value in the selected range. This value converts to the related character and appends to the appropriate list.

upperc = []
lowerc = []

for i in range(ord('A'), ord('Z') + 1):
    upperc.append(chr(i))

for i in range(ord('a'), ord('z') + 1):
    lowerc.append(chr(i))

frmt = "{:>5}"*26
print(frmt.format(*upperc))
print(frmt.format(*lowerc))

The upper and lower case Alphabets are created based on the above ranges and save to upperc/lowerc respectively.

Formatted 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

Summary

These four (4) methods of generating the Alphabet should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding!