【Python基礎】アルファベットのリストを作成する方法

  • URLをコピーしました!

アルファベットのリスト

前回、NumPyのargsortでソートの方法を変えた場合の処理時間の計測結果を紹介しました。

今回はアルファベットのリストを作成する方法を紹介します。

アルファベットのリストが必要な場合、最も単純に準備する方法としてはアルファベット26文字のリストを作ることです。

alphabet_upper_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_lower_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"]

print(alphabet_upper_list)
print(alphabet_lower_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']
['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']

一度作ってしまえば、同一プログラム内では使い回しできますし、プログラムが変わったとしてもコピペで使い回すことができます。

ただ作成するのがかなり手間がかかるので他の方法がないものかと調べて見たのが今回の発端です。

それでは始めていきましょう。

chr(数字)を使う方法

「chr(数字)」を使うと文字を数字で指定することができます。

例えば「chr(35)」は「#」で、「chr(38)」は「&」です。

print(chr(35))
print(chr(38))

実行結果
#
&

もちろんアルファベットを示す数字もあり、「65から91が大文字のアルファベット」、「97から123が小文字のアルファベット」となっています。

alphabet_upper_list = [chr(num) for num in range(65, 91)]
alphabet_lower_list = [chr(num) for num in range(97, 123)]

print(alphabet_upper_list)
print(alphabet_lower_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']
['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']

また小文字のアルファベットは「大文字のアルファベット.lower()」でも出力可能です。

alphabet_lower_list = [chr(num).lower() for num in range(65, 91)]

print(alphabet_lower_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']

stringを使う方法

stringを使うと数字の指定なしに大文字、小文字のアルファベットのリストを作成することができます。

大文字の場合は「string.ascii_uppercase」、小文字の場合は「string.ascii_lowercase」です。

import string

alphabet_upper_list = string.ascii_uppercase
alphabet_lower_list = string.ascii_lowercase

print(alphabet_upper_list)
print(alphabet_lower_list)

実行結果
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz

アルファベットの文字列として出てくるので、リストにしたい場合は「list(string.ascii_uppercase)」のようにします。

import string

alphabet_upper_list = list(string.ascii_uppercase)
alphabet_lower_list = list(string.ascii_lowercase)

print(alphabet_upper_list)
print(alphabet_lower_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']
['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']

2文字のアルファベットのリストを作成する方法

例えば「⚪︎⚪︎⚪︎_a.txt」、「⚪︎⚪︎⚪︎_b.txt」のように大量のファイルをアルファベットで管理しようとするとアルファベットは26文字しかないため、すぐに使い果たしてしまいます。

そこで「⚪︎⚪︎⚪︎_aa.txt」、「⚪︎⚪︎⚪︎_ab.txt」など2文字のアルファベットとすることで676種類のファイルの管理をすることができるようになります。

その様な2文字のアルファベットのリストを作成するには、リスト内包表記を使い、この様に記述することができます。

alphabet_lower_list = [chr(num) for num in range(97, 123)]

alphabet_twolower_list = [str1+str2 for str1 in alphabet_lower_list for str2 in alphabet_lower_list]

print(alphabet_twolower_list)

実行結果
['aa', 'ab', 'ac', 'ad', 'ae', 'af', 'ag', 'ah', 'ai', 'aj', 'ak', 
'al', 'am', 'an', 'ao', 'ap', 'aq', 'ar', 'as', 'at', 'au', 'av', 
'aw', 'ax', 'ay', 'az', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'bg', 
(中略)
'za', 'zb', 'zc', 'zd', 'ze', 'zf', 'zg', 'zh', 'zi', 'zj', 'zk', 
'zl', 'zm', 'zn', 'zo', 'zp', 'zq', 'zr', 'zs', 'zt', 'zu', 'zv', 
'zw', 'zx', 'zy', 'zz']

また時には「⚪︎⚪︎⚪︎_Aa.txt」、「⚪︎⚪︎⚪︎_Ab.txt」のように大文字と小文字を合わせた2つのアルファベットとしたい場合もあることでしょう。その場合は以下の様にします。

alphabet_upper_list = [chr(num) for num in range(65, 91)]
alphabet_lower_list = [chr(num) for num in range(97, 123)]

alphabet_upperlower_list = [str1+str2 for str1 in alphabet_upper_list for str2 in alphabet_lower_list]

print(alphabet_upperlower_list)

実行結果
['Aa', 'Ab', 'Ac', 'Ad', 'Ae', 'Af', 'Ag', 'Ah', 'Ai', 'Aj', 'Ak', 
'Al', 'Am', 'An', 'Ao', 'Ap', 'Aq', 'Ar', 'As', 'At', 'Au', 'Av', 
'Aw', 'Ax', 'Ay', 'Az', 'Ba', 'Bb', 'Bc', 'Bd', 'Be', 'Bf', 'Bg', 
(中略)
'Za', 'Zb', 'Zc', 'Zd', 'Ze', 'Zf', 'Zg', 'Zh', 'Zi', 'Zj', 'Zk', 
'Zl', 'Zm', 'Zn', 'Zo', 'Zp', 'Zq', 'Zr', 'Zs', 'Zt', 'Zu', 'Zv', 
'Zw', 'Zx', 'Zy', 'Zz']

次回はNumPyでndarrayの要素を任意の最大値・最小値内の数値に丸めるclipを紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする