pythonで全角英数字を全て半角に変換したいです。
names = ['T','t','1']
上記を下記のように変換したいです。
大文字小文字はそのままで良いです。
names = ['T','t','1']
初歩的な質問ですが何方かアドバイス頂けたら嬉しいです。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
str.lower() で小文字にできます。
python
1text = 'ABC' 2print(text.lower()) # abc
リストに適用する場合は、map を使うとよい
python
1names = ['T','t','1'] 2lower_names = list(map(str.lower, names)) 3 4print(lower_names) # ['t', 't', '1']
追記
回答した後に気づいたんですが、大文字⇢小文字ではなく、全角⇢半角ですね。
mojimoji というライブラリが便利そうですよ。
pip install mojimoji
python
1import mojimoji 2 3zenkaku = '12345ABC' 4hankaku = mojimoji.zen_to_han(zenkaku) 5print(hankaku) # 12345ABC 6 7zenkaku = ['1', '2', '3', '4', '5', 'A', 'B', 'C'] 8hankaku = list(map(mojimoji.zen_to_han, zenkaku)) 9print(hankaku) # ['1', '2', '3', '4', '5', 'A', 'B', 'C'] 10# 指定可能な引数 11# kana=True or False, カタカナを半角にするかどうか 12# digit=True or False, 数字を半角にするかどうか 13# ascii=True or False, Ascii 文字を半角にするかどうか (記号など)
投稿2019/03/07 08:37
編集2019/03/07 08:48総合スコア21960
0
python
1from string import ascii_letters 2from string import digits 3 4han = ascii_letters + digits 5zen = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 6 7table = str.maketrans(zen, han) # 変換テーブル 8 9names = ['T','t','1'] 10names = [name.translate(table) for name in names] # "...".translate(...)で変換
追記(もうちょっとスマートな方法)
python
1from string import ascii_letters 2from string import digits 3 4han = ascii_letters + digits 5table = {c + 65248: c for c in map(ord, han)} 6 7names = ['T','t','1'] 8names = [name.translate(table) for name in names] # "...".translate(...)で変換
投稿2019/03/07 08:59
編集2019/03/07 09:06総合スコア6149
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/07 08:40
2019/03/07 08:46
退会済みユーザー
2019/03/07 08:56