Я проверяю, есть ли нарезанная часть слов в словаре, поэтому я могу знать, если слова, которые заканчиваются на «;», или являются последними в словарном значении, являются существительными в базовой форме.Подробнее pythonic/лучший способ написать это?
У меня есть этот код здесь:
dict = {"devotion": "andumus; pühendumust", "devotional": "vagasse",
"devour": "kugistama; alla neelama", "devoured": "neelatud"}
endings2 = ["es", "te", "de", "st", "el", "le", "lt", "ks", "ni", "na", "ta", "ga", "id"]
endings3 = ["sse", "tte"]
for k, v in sorted(dict.items()):
for x in v.split():
if ((x[-1:] == ';' or x == v.split()[-1])
and (x[-3:-1] not in endings2 and x[-4:-1] not in endings3
and x[-2:] not in endings2 and x[-3:] not in endings3)):
print(k, x)
Это работает, но это своего рода жёстко. Я бы предпочел как-то использовать только один список для случаев/окончаний.
ли значения в вашем словаре полу-разделённых двоеточием разделенные списки синонимов? Лучший способ хранения списка элементов - это список (или, может быть, набор). – ThisSuitIsBlackNot