Страницы

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

четверг, 13 февраля 2020 г.

Как выбрать только русские слова из списка в python

#python #python_3x #list


У меня есть список слов как на английском так и на русском.
Например

list = ['apple', 'cat', 'яблоко', 'кот', 'building', 'машина', 'status',]


Как можно пройдя циклом вывести только русские слова?
В будущем планируется перебирать большой объем данных. И как это можно сделать с
учетом производительности?
    


Ответы

Ответ 1



Можно сделать через регулярное выражение, например: import re r = re.compile("[а-яА-Я]+") words = ['apple', 'cat', 'яблоко', 'кот', 'building', 'машина', 'status',] russian = [w for w in filter(r.match, words)] Для повышения скорости фильтрации на многоядерном процессоре можно дробить исходный список слов на куски (скажем, по 100000) и запускать фильтрацию в отдельных потоках с последующей конкатенацией результатов в один список.

Ответ 2



Простой вариант: [word for word in lst if 1039 < ord(word[0])] P.S.: Не стоит использовать имя переменной list, в языке уже есть одноименная функция. Update: Протестировал производительность - решение на регулярных выражениях работает на порядок быстрее.

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

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