# How to Create a List of the Alphabet

## 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)

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

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

## 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

## 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

## 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!