0

How to count the number of non-int values in a list? I counted all the elements like this and I don't understand what condition to prescribe.

list = [1, 2, "s1", 3, "s2", "s3"]
def number_of_elements(list):
    count = 0
    for element in list:
        count += 1
    return count
print("Number of elements: ", number_of_elements(list))
slavabuu
  • 13
  • 5

2 Answers2

1

You can use isinstance():

lst = [1, 2, "s1", 3, "s2", "s3"]


def number_of_elements(lst):
    count = 0
    for element in lst:
        if not isinstance(element, int):
            count += 1
    return count


print("Number of elements: ", number_of_elements(lst))

Another option is:

def number_of_elements(lst):
    return sum(not isinstance(element, int) for element in lst)

If you are checking against all numbers, you can use numbers.Number.

S.B
  • 13,077
  • 10
  • 22
  • 49
1

Try this:

sum(isinstance(l, str) for l in lst)

Output:3

I'mahdi
  • 23,382
  • 5
  • 22
  • 30