Home > Enterprise >  Python - TypeError: '<' not supported between instances of 'int' and 'li
Python - TypeError: '<' not supported between instances of 'int' and 'li

Time:07-04

I'm doing a small task in Python. I have to categorizes age into six different categories, based on the age ranges specified in the question. If the age is less than 18, the code prints "Category: Under 18". If the age is between 18 and 24, the code prints "Category: 18-24", and so on.

Here's my code:

Age_Group = [18,24,34,44,54,64]


if Age_Group < 18:
    print("Category: Under 18")

elif Age_Group  >= 18 and Age_Group <= 24:
    print("Category: 18-24")

elif Age_Group  >= 25 and Age_Group  <= 34:
    print("Category: 25-34")

elif Age_Group  >= 35 and Age_Group  <= 44:
    print("Category: 35-44")

elif Age_Group  >= 45 and Age_Group  <= 54:
    print("Category: 45-54")

elif Age_Group  >= 55:
    print("Category: 55 and over")

When I executed the code, I got 'TypeError' message:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-166-8814d798b4aa> in <module>
      2 
      3 
----> 4 if Age_Group < 18:
      5     print("Category: Under 18")
      6 

TypeError: '<' not supported between instances of 'list' and 'int'

Can anyone help me with this?

CodePudding user response:

You need to access each element of the list and perform the comparison, instead of using <=> operators between list and integer value:

Age_Group = [18,24,34,44,54,64]

for i in Age_Group:
    print(f"Age {i}")
    if i < 18:
        print("Category: Under 18")
    
    elif i  >= 18 and i <= 24:
        print("Category: 18-24")
    
    elif i  >= 25 and i  <= 34:
        print("Category: 25-34")
    
    elif i  >= 35 and i  <= 44:
        print("Category: 35-44")
    
    elif i  >= 45 and i  <= 54:
        print("Category: 45-54")
    
    elif i  >= 55:
        print("Category: 55 and over")

Output:

Age 18
Category: 18-24
Age 24
Category: 18-24
Age 34
Category: 25-34
Age 44
Category: 35-44
Age 54
Category: 45-54
Age 64
Category: 55 and over
  • Related