[Python] Extrait correctement Emojis d'une chaîne Unicode


Answers

J'utiliserais la bibliothèque uniseg ( pip install uniseg ):

# -*- coding: utf-8 -*-
from uniseg import graphemecluster as gc

print list(gc.grapheme_clusters(u'😘😘xyz😊😊'))

sorties [u'\U0001f618', u'\U0001f618', u'x', u'y', u'z', u'\U0001f60a', u'\U0001f60a'] , et

[x.encode('utf-8') for x in gc.grapheme_clusters(u'😘😘xyz😊😊'))]

fournira la liste des caractères sous forme de chaînes codées en UTF-8.

Question

Je travaille en Python 2 et j'ai une chaîne contenant des emojis ainsi que d'autres caractères Unicode. J'ai besoin de le convertir en une liste où chaque entrée de la liste est un seul caractère / emoji.

x = u'😘😘xyz😊😊'
char_list = [c for c in x]

La sortie désirée est:

['😘', '😘', 'x', 'y', 'z', '😊', '😊']

La sortie réelle est:

[u'\ud83d', u'\ude18', u'\ud83d', u'\ude18', u'x', u'y', u'z', u'\ud83d', u'\ude0a', u'\ud83d', u'\ude0a']

Comment puis-je atteindre la sortie désirée?