[python] Créer une liste de différents types de caractères

Inspiré par ~~ Faites une simple liste d'alphabets avec Python ~~ (lien brisé), faites une liste de différentes chaînes de caractères vu.

Je pense qu'il peut être utilisé dans les dictionnaires de mots de passe et les jeux de mots.

Postscript (30/03/2018)

Il semble que certaines personnes le regardent de temps en temps, alors je vais également expliquer le module dans la section commentaires. Je pense que la meilleure pratique consiste à utiliser le module string pour les chaînes de caractères demi-largeur.

>>> import string
>>> help(string)
(Omission)
DATA
    ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
    ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    digits = '0123456789'
    hexdigits = '0123456789abcdefABCDEF'
    letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv...\xaf\xb0...
    lowercase = 'abcdefghijklmnopqrstuvwxyz'
    octdigits = '01234567'
    printable = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU...
    punctuation = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
    uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    whitespace = '\t\n\x0b\x0c\r '
>>> string.digits
'0123456789'

En Python, la gestion des listes et des chaînes n'est pas si différente, je vais donc omettre l'explication de cette partie.

Alphabet inférieur

[chr(i) for i in range(97, 97+26)]
# [chr(i) for i in range(ord('a'), ord('z')+1)]

Capitale de l'alphabet

[chr(i) for i in range(65, 65+26)]
# [chr(i) for i in range(ord('A'), ord('Z')+1)]

Numéro demi-largeur

[chr(i) for i in range(48, 48+10)]
# [chr(i) for i in range(ord('0'), ord('9')+1)]

Hiragana

[chr(i) for i in range(12353, 12436)]
# [chr(i) for i in range(ord('Ah'), ord('Hmm')+1)]

Katakana

[chr(i) for i in range(12449, 12532+1)]
# [chr(i) for i in range(ord('UNE'), ord('Vers le bas')+2)]
#Si vous n'avez pas besoin de "Vu",-1 "s'il vous plaît

Nombre pleine largeur

[chr(i) for i in range(65296, 65296+10)]
# [chr(i) for i in range(ord('0'), ord('9')+1)]

Kanji commun

C'est impossible. En continu. Cependant, vous ne pouvez rien faire.

[Version UTF-8 de la table de codes kanji commune] Je pense qu'il n'y a pas d'autre choix que d'extraire les kanji de csv et de les lister ...

Après avoir supprimé le champ de commentaire, exécutez ce qui suit.

import csv
kanji = []
with open('/path/to/joyo-kanji-code-u.csv', 'r') as f:
    data = csv.reader(f)
    
    for row in data:
        kanji.append(row[0])

Ouaip. Une liste de 2136 pièces semble lourde ... Veuillez faire de votre mieux pour faire des choses qui incluent l'extérieur.

Symbole demi-largeur

Ceci est également impossible en permanence. Gaz rare que la personne qui a mis ASCII est mauvais ... Je n'ai pas trouvé de bonne méthode, je vais donc donner un exemple.

eisu = [chr(i) for i in range(97, 97+26)]
eisu.extend([chr(i) for i in range(65, 65+26)])
eisu.extend([chr(i) for i in range(48, 48+10)])

[chr(i) for i in range(33, 127) if chr(i) not in eisu]
#En passant, si vous changez "33" en "32", un espace demi-largeur sera inséré.

Comme vous l'avez peut-être remarqué, pour tous les caractères demi-largeur, [chr (i) for i in range (32, 127)]

prime

Je pense que c'est un problème de copier et coller un par un, donc je vais mettre une fonction qui renvoie la liste que je veux. Bien sûr, veuillez ajouter des kanji communs et des symboles de demi-largeur par la suite.

#Alphabet inférieur →(97, 123)
#Majuscule alphabet →(65, 91)
#Numéro demi-largeur →(48, 58)
#Hiragana →(12353, 12436)
#Katakana →(12449, 12532+1)
#Nombre pleine largeur →(65296, 65306)

def moji_list(*args):
    moji = []
    for i in range(len(args)):
        moji.extend([chr(j) for j in range(args[i][0], args[i][1])])
    return moji

moji_list((97, 123), (65, 91), (48, 58))
# ['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', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

Je pense qu'il est également possible de le spécifier avec ord ().

Recommended Posts

[python] Créer une liste de différents types de caractères
[Python] Compréhension de liste Différentes façons de créer une liste
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Python: créer un dictionnaire à partir d'une liste de clés et de valeurs
Afficher une liste d'alphabets en Python 3
[python] Obtenir une liste de variables d'instance
[Python] Obtenir une liste de dossiers uniquement
J'ai essayé de créer une liste de nombres premiers avec python
Liste des modules python
Créer un module Python
Copiez la liste en Python
Créer un environnement Python
Divers traitements de Python
[Python] Créer une liste de date et d'heure (type datetime) pour une certaine période
Comment écrire un type liste / dictionnaire de Python3
Python: obtenir une liste de méthodes pour un objet
Regrouper par éléments consécutifs d'une liste en Python
Créer un plugin Wox (Python)
Créer une fonction en Python
Résumé des opérations de liste Python3
Créer un dictionnaire en Python
Création de liste de tâches [Python Django]
À propos de divers encodages de Python 3
La liste Python n'est pas une liste
2.x, 3.x code de caractères des séries python
Créer un tableau numpy python
[Python] Copie d'une liste multidimensionnelle
Créer un répertoire avec python
Comment mélanger une partie de la liste Python (au hasard.shuffle)
[Python] Créer une liste de dates et d'heures pour une période spécifiée
Obtenez le nombre d'éléments spécifiques dans la liste python
Obtenez une liste des livres électroniques DMM achetés avec Python + Selenium
Discord's Python 1.5 ou version ultérieure, je ne parviens pas à obtenir la liste des membres
Comment obtenir une liste d'exceptions intégrées pour python
Crache une liste de noms de fichiers, de dates de dernière modification et de codes de caractères en python3
[Python] Comment créer une table à partir d'une liste (opération de base de création de table / changement de nom de matrice)
Une bonne description des décorateurs Python
[python] Gérer les fonctions dans une liste
Créer une interface graphique python à l'aide de tkinter
Créer un conteneur DI avec Python
[Python] Un mémorandum de belle soupe4
Créer un environnement Python sur Mac (2017/4)
Un bref résumé de la collection Python
Créez un environnement virtuel avec Python!
Créer un fichier binaire en Python
python / Créer un dict à partir d'une liste.
Créer un environnement python dans centos
Créer un framework de décorateur à usage général pour Python
5 façons de créer un chatbot Python
Créer une chaîne aléatoire en Python
Générer une liste de caractères consécutifs
À propos de la liste de base des bases de Python
Créer une instance d'une classe prédéfinie à partir d'une chaîne en Python
Essayez d'obtenir la liste des fils du bulletin d'information (je n'aime pas) avec Python.
Creusez le répertoire et créez une liste de chemins de répertoire + noms de fichiers
Différentes façons de créer un tableau de nombres de 1 à 10 en Python.
Obtenez une liste de fichiers dans un dossier avec python sans chemin
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche