You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
927 B
32 lines
927 B
3 years ago
|
import wikipediaapi
|
||
|
|
||
|
|
||
|
def get_all_titles_from_category(category: str) -> list:
|
||
|
wiki = wikipediaapi.Wikipedia("ru")
|
||
|
cat = wiki.page(category)
|
||
|
names = [c.title() for c in cat.categorymembers]
|
||
|
return names
|
||
|
|
||
|
|
||
|
def get_count_list_by_first_letter(names: list) -> dict:
|
||
|
names_dict: dict = {}
|
||
|
for n in names:
|
||
|
first_letter = n[0]
|
||
|
count = names_dict.get(first_letter, 0)
|
||
|
names_dict[first_letter] = count + 1
|
||
|
|
||
|
return names_dict
|
||
|
|
||
|
|
||
|
def main():
|
||
|
wiki = wikipediaapi.Wikipedia("ru")
|
||
|
animals = get_all_titles_from_category("Категория:Животные по алфавиту")
|
||
|
# animals = get_all_titles_from_category("Категория:Знаменитые животные по алфавиту")
|
||
|
result: dict = get_count_list_by_first_letter(animals)
|
||
|
for names, count in result.items():
|
||
|
print(f"{names}: {count}")
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|