C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).
Trouvez l'ensemble des bi-grammes de caractères contenus dans «paraparaparadise» et «paragraphe» comme X et Y, respectivement, et trouvez les ensembles de somme, de produit et de différence de X et Y, respectivement. En outre, découvrez si le bi-gram'se'est inclus dans X et Y.
Le code fini:
main.py
# coding: utf-8
def n_gram(target, n):
'''N de la liste spécifiée-Créer un gramme
argument:
target --Liste des cibles
n -- n-valeur gramme n (1 est uni-gramme, 2 pour bi-gram...)
Valeur de retour:
Liste de gramme
'''
result = []
for i in range(0, len(target) - n + 1):
result.append(target[i:i + n])
return result
#Créer un ensemble
set_x = set(n_gram('paraparaparadise', 2))
print('X:' + str(set_x))
set_y = set(n_gram('paragraph', 2))
print('Y:' + str(set_y))
#Ensemble de somme
set_or = set_x | set_y
print('Ensemble de somme:' + str(set_or))
#Ensemble de produits
set_and = set_x & set_y
print('Ensemble de produits:' + str(set_and))
#Jeu de différences
set_sub = set_x - set_y
print('Jeu de différences:' + str(set_sub))
# 'se'Est inclus?
print('se est inclus dans X:' + str('se' in set_x))
print('se est inclus dans Y:' + str('se' in set_y))
Résultat de l'exécution:
Terminal
X:{'ar', 'se', 'di', 'is', 'pa', 'ap', 'ad', 'ra'}
Y:{'ar', 'gr', 'ph', 'ra', 'pa', 'ap', 'ag'}
Ensemble de somme:{'ar', 'gr', 'se', 'ph', 'di', 'is', 'pa', 'ap', 'ad', 'ra', 'ag'}
Ensemble de produits:{'ar', 'ap', 'pa', 'ra'}
Jeu de différences:{'di', 'is', 'se', 'ad'}
se est inclus dans X:True
se est inclus dans Y:False
n_gram ()
est une réutilisation de question précédente.
Pour les réponses des seniors, set.union ()
, set.intersection ()
, [set.difference ()
](http://docs.python.jp/3/library/stdtypes.html # set.difference) est souvent utilisé. On dit qu'il est plus lisible, mais je ne suis pas bon en anglais, donc |
, &
et -
sont plus intuitifs, alors j'ai essayé ceci.
Même ainsi, paraparaparadise apparaîtra dans un tel endroit ^^ C'est tout pour le 7e coup. Si vous avez des erreurs, j'apprécierais que vous les signaliez.
Recommended Posts