>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> list[string.ascii_lowercase]
['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']
Alternatively, using range
:
>>> list[map[chr, range[97, 123]]]
['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']
Or equivalently:
>>> list[map[chr, range[ord['a'], ord['z']+1]]]
['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']
Other helpful string
module features:
>>> help[string]
....
DATA
ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
digits = '0123456789'
hexdigits = '0123456789abcdefABCDEF'
octdigits = '01234567'
printable = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'[]*+,-./:;?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
punctuation = '!"#$%&\'[]*+,-./:;?@[\\]^_`{|}~'
whitespace = ' \t\n\r\x0b\x0c'
While working with Python lists, sometimes we wish to initialize the list with the English alphabet a-z or A-Z. This is an essential utility in competitive programming and also in certain applications. Let’s discuss various methods to achieve this using Python.
Initialize the list with alphabets using string.ascii_uppercase
The most pythonic and latest way to perform this particular task. Using this new inbuilt function will internally handle the coding part providing a useful shorthand for the user.
Note: You can use lowercase instead of uppercase to generate lower alphabets.
Python3
import
string
test_list
=
[]
test_list
=
list
[string.ascii_uppercase]
print
[
"List after insertion : "
+
str
[test_list]]
Output :
List after insertion : [‘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’]
Initialize the list with alphabets using a naive method
The most general method that comes to our mind is using the brute force method of running a Python loop till 26 and incrementing it while appending the letters in the list. Refer to ASCII Table for more.
Python3
test_list
=
[]
print
[
"Initial list : "
+
str
[test_list]]
alpha
=
'a'
for
i
in
range
[
0
,
26
]:
test_list.append[alpha]
alpha
=
chr
[
ord
[alpha]
+
1
]
print
[
"List after insertion : "
+
str
[test_list]]
Output :
Initial list : []
List after insertion : [‘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’]
Initialize the list with alphabets using list comprehension
This is a method similar to the above method, but rather a shorthand for the naive method as it uses the list comprehension technique to achieve the task.
Python3
test_list
=
[]
print
[
"Initial list : "
+
str
[test_list]]
test_list
=
[
chr
[x]
for
x
in
range
[
ord
[
'a'
],
ord
[
'z'
]
+
1
]]
print
[
"List after insertion : "
+
str
[test_list]]
Output :
Initial list : []
List after insertion : [‘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’]
Initialize the list with alphabets using a map[]
Using a map[] is an elegant way to perform this particular task. It type casts the numbers in a range to a particular data type, char in this case, and assigns them to the list.
Python3
test_list
=
[]
print
[
"Initial list : "
+
str
[test_list]]
test_list
=
list
[
map
[
chr
,
range
[
97
,
123
]]]
print
[
"List after insertion : "
+
str
[test_list]]
Output :
Initial list : []
List after insertion : [‘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’]