Есть список из чисел и строк , как узнать сколько каких там элементов
lst = ['a1',4,'a3',5,88,'2a',12,18,'sort','a5']
Есть список из чисел и строк , как узнать сколько каких там элементов понимаю что нужно отделить одно от второго но как не пойму
lst1=[i for i in lst if i == ...]
Ответы (2 шт):
Вы можете использовать цикл for для перебора всех элементов в списке и проверить, является ли каждый элемент числом или строкой с помощью функции isinstance(). Затем вы можете подсчитать количество элементов каждого типа с помощью словаря.
Вот пример кода, который считает количество чисел и строк в списке:
lst = ['a1', 4, 'a3', 5, 88, '2a', 12, 18, 'sort', 'a5']
num_count = 0
str_count = 0
for i in lst:
if isinstance(i, int):
num_count += 1
elif isinstance(i, str):
str_count += 1
print("Number of numbers in the list:", num_count) #Number of numbers in the list: 4
print("Number of strings in the list:", str_count) #Number of strings in the list: 6
Вы также можете использовать генераторы списков для создания новых списков на основе оригинального списка. Например, чтобы создать новый список, содержащий только числа, вы можете использовать следующий код:
num_list = [i for i in lst if isinstance(i, int)]
Или чтобы создать новый список, содержащий только строки, вы можете использовать следующий код:
str_list = [i for i in lst if isinstance(i, str)]
Если необходимо только число тех или иных элементов, то я решал бы примерно так:
lst1=[i for i in lst if type(i) == int]
i = len(lst1)
s = len(lst) - i
print(i, s)
Но может есть и более красивое решение.