スズメの本棚

自分の知識の定着のために本や実装したことをまとめていきます.

pythonでアルファベットのリストの出力

先日受けたアルゴリズム実技検定でアルファベットのリストを作成してそれを利用するような問題が出ていたので自身の備忘録も兼ねてアルファベットのリストの作成方法をまとめました.
基本的にはqiita記事を参考にしているので元記事が気になる人はこちらを見てください.

コード例

まず,コピペ用にアルファベットの全ての小文字を出力する三つのコード例を載せておきます.

import string
print(list(string.ascii_lowercase))
print([chr(ord("a")+i) for i in range(26)])
print([chr(i) for i in range(97, 97+26)])

出力はいずれも下記のようになっています.

['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']

stringを使った方法

pythonの標準ライブラリのstringを使った方法です.stringではアルファベット以外にも特殊文字や数字に関しても扱うことができます.文字列で出力されるのでlist()でリスト化すれば,アルファベットのリストが手に入ります.
ここでは,stringを使って何を出力できるのかコードとその出力を載せておきたいと思います.

import string
#アルファベットの大文字小文字の出力
print(string.ascii_letters)
#アルファベットの小文字のみの出力
print(string.ascii_lowercase)
#アルファベットの大文字のみの出力
print(string.ascii_uppercase)
#数値の文字列の出力
print(string.digits)
#16進数で扱う文字列の出力
print(string.hexdigits)
#8進法で扱う文字列の出力
print(string.octdigits)
#特殊文字列の出力
print(string.punctuation)
#上記で扱った文字列の出力
print(string.printable)
#スペースや改行など空白に関する文字列の出力
print(string.whitespace)

出力(printableとwhitespace以外に関して)

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
0123456789abcdefABCDEF
01234567
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

chrを使った方法

PythonUnicodeコードポイント(文字コード)の文字列を返してくれるのがchr()です.
ある一文字に対応するUnicodeコードポイントを表す整数値を返してくれるのがord()です.

#chrとordの関係性
print(chr(49)) # "1"
print(ord("1")) # 49

この関係性を使うことでアルファベットのリストを出力することができます.

# upper-case A-Z
print([chr(i) for i in range(65,65+26)])
print([chr(ord("A")+i) for i in range(26)])
# lower-case a-z
print([chr(i) for i in range(97,97+26)])
print([chr(ord("a")+i) for i in range(26)])

競技プログラミングなどでたまにリストを用意しておく必要があるので,今後すぐに見られるようにメモとして記事にしました.