как выделить числа из списка? Python
import re
def sum_by_types(items):
num_list = [x for x in items if f'{x}'.isdigit()]
str_list = [x for x in items if not f'{x}'.isdigit()]
return num_list, str_list
print(sum_by_types([])) #== ("", 0)
print(sum_by_types([1, 2, 3])) #== ("", 6)
print(sum_by_types(["1", 2, 3])) #== ("1", 5)
print(sum_by_types(["1", "2", 3])) #== ("12", 3)
print(sum_by_types(["1", "2", "3"])) #== ("123", 0)
print(sum_by_types(["size", 12, "in", 45, 0])) #== ("sizein", 57)
задача: — вернуть 2 значения. Первое — это конкатенация всех строк из заданного списка. Второе представляет собой сумму всех целых чисел из заданного списка.
Не могу понять как выделить числа из списка isdigit() пробовал. Есть еще способы?
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Нужно проверять типы элементов (isinstance):
def sum_by_types(items):
text = ''.join(filter(lambda x: isinstance(x, str), items))
sum_ = sum(filter(lambda x: isinstance(x, int), items))
return text, sum_