#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) # >>>> ['м', 'а', 'й']
Комментариев нет:
Отправить комментарий