Есть список из чисел и строк , как узнать сколько каких там элементов

Рейтинг: 1Ответов: 2Опубликовано: 16.02.2023
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)]
▲ 0

Если необходимо только число тех или иных элементов, то я решал бы примерно так:

lst1=[i for i in lst if type(i) == int]
i = len(lst1)
s = len(lst) - i
print(i, s)

Но может есть и более красивое решение.