#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: Протестировал производительность - решение на регулярных выражениях работает на порядок быстрее.
Комментариев нет:
Отправить комментарий