Фильтровать не английские ключевые слова из списка Python - PullRequest
0 голосов
/ 11 октября 2018

У меня есть список ниже Python,

List= ['Images', 'Maps', 'Play', 'YouTube', 'News', 'Gmail', 'Drive', None, 
'Web History', 'Settings', 'Sign in', 'Advanced search', 'Language tools', 
'हिन्दी', 'বাংলা', 'తెలుగు', 'मराठी', 'தமிழ்', 'ગુજરાતી', 'ಕನ್ನಡ', 'മലയാളം', 
'ਪੰਜਾਬੀ', 'Advertising\xa0Programs', 'Business Solutions', '+Google', 
'About Google', 'Google.co.in', 'Privacy', 'Terms']

Я хочу отфильтровать неанглийские ключевые слова из этого списка и хочу, чтобы мой окончательный список выглядел так,

List=['हिन्दी', 'বাংলা', 'తెలుగు', 'मराठी', 'தமிழ்', 'ગુજરાતી', 'ಕನ್ನಡ', 'മലയാളം','ਪੰਜਾਬੀ']

Этоможно сделать с помощью Regex?Я использую Python 3.x Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Это также можно выполнить в регулярном выражении.

import re

result = ["".join(re.findall("[^\u0000-\u05C0]",i)) for i in List if i is not None and re.findall("[^\u0000-\u05C0]",i)]

print (result)

Результат:

['हिन्दी', 'বাংলা', 'తెలుగు', 'मराठी', 'தமிழ்', 'ગુજરાતી', 'ಕನ್ನಡ', 'മലയാളം', 'ਪੰਜਾਬੀ']
0 голосов
/ 11 октября 2018

Поскольку все неанглийские символы находятся выше 7-битного диапазона ASCII, вы можете проверить, являются ли порядковые номера любого из символов в каждом слове выше 127 и считаются алфавитом как str.isalpha():

[w for w in List if w and any(ord(c) > 127 and c.isalpha() for c in w)]

При вводе пробы возвращается:

['हिन्दी', 'বাংলা', 'తెలుగు', 'मराठी', 'தமிழ்', 'ગુજરાતી', 'ಕನ್ನಡ', 'മലയാളം', 'ਪੰਜਾਬੀ']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...