Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Разделить в Python 3 слово на символы [дубликат]

#python #python_3x


        
             
                
                    
                        
                            This question already has answers here:
                            
                        
                    
                
                        
                            Как разбить строку на отдельные символы?
                                
                                    (8 ответов)
                                
                        
                                Закрыт 1 год назад.
            
                    
Есть строка, к примеру, "май" надо сделать так, чтобы получился список примерно такого
вида: ['м', 'а', 'й'].

split тут не сработает (по крайней мере, у меня не вышло), так как нет символа, через
который можно разделить слово на буквы.
    


Ответы

Ответ 1



Строка (например,"май") -- это неизменяемая последовательность Юникодных символов (Unicode code points) в Питоне 3. Поэтому достаточно просто передать строку в list(), чтобы получить список символов (изменяемая последовательность). Некоторые буквы могут состоять из нескольких символов, например, ё буква может быть представлена как U+0435 U+0308 последовательносить символов в NFD форме (Unicode normalization forms): >>> print(u'\u0435\u0308') ё Если хочется найти именно буквы, а не символы, то можно использовать \X регулярное выражение для букв (eXtended grapheme clusters): >>> list(u'\u0435\u0308\u0436') ['е', '̈', 'ж'] >>> import regex # $ pip install regex >>> regex.findall(r'\X', u'\u0435\u0308\u0436', regex.U) ['ё', 'ж'] В данном случае строка содержит три символа, но только две буквы. В общем случае, не все видимые символы могут быть представлены в виде единственной Unicode codepoint, то есть NFD не является единственной причиной, что некоторые символы на экране могут быть представлены в виде нескольких Unicode codepoints (см. примеры в ссылке выше).

Ответ 2



Как-то так: print(list("abcd")) Если нужно пройти по всем сиволам, то for c in "abcd": ...

Ответ 3



Если по-простому, без regex, можно просто и явно: char_list = [] # объявляем пустой список string = 'май' for c in string: # идем по строке char_list.append(c) # добавляем буквы в список print(char_list) # >>>> ['м', 'а', 'й']

Комментариев нет:

Отправить комментарий