Как разделить список на 2 списка(в 1 списке данные str, в другом int)

Есть список

li = ['cow', '1', 'cat', '2', 'dog', '3']

В списке li все данные str.
Нужно разделить этот список на 2 других списка.
1 список будет выглядеть так(в нем все данные типа str):

animals = ['cow', 'cat', 'dog']

2список так(в нем все данные типа int):

num = ['1', '2', '3']

Как это сделать?


Ответы (2 шт):

Автор решения: VOLK
def split_animals_and_num(data):
    animals = []
    num = []
    for i in data:
        try:
            num.append(int(i))
        except ValueError:
            animals.append(i)
    return (animals, num)


li = ['cow', '1', 'cat', '2', 'dog', '3']
animals, num = split_animals_and_num(li)
→ Ссылка
Автор решения: Dmitry

Добавлю еще вариант решения

li = ['cow', '1', 'cat', '2', 'dog', '3']
animals = []
num = []
for i in li:
    num.append(i) if i.isnumeric() else animals.append(i)
→ Ссылка