How to know if a list has an even or odd number of elements

14,467

Solution 1

You can use the built in function len() for this.

Python Doc -- len()

Gets the length (# of elements) of any arbitrary list.

myList = [0,1,2,3,4,5]

if len(myList) % 2 == 0:
    print ("even")
else
    print ("odd")

Define function that returns a bool (true or false).

def is_even(myList):

    if len(myList) % 2 == 0:
        return true
    else:
        return false

main():

    myList = [0,1,2,3]
    theListIsEven = is_even(myList)  # will be true in this example
                                     # because 4 items in myList

    if theListIsEven(myList) == True:
        # do something
    else:
        # do something else

    return 0

The modulus operator % gives the remainder.

EX: 7 % 2 = 1

  • Closest number to 7 that 2 will divide evenly is 6
  • Which is 1 away from 7.
  • Thus, remainder of 1 for 7 % 2.

EX: 4 % 2 = 0

  • Any even number n will give 0 as the remainder when n % 2
  • Because n has divided evenly by 2

Solution 2

your_list = [1,2,3,(4,5)]

# modulo operation finds the remainder of division of one number by another.
if len(your_list) % 2 == 0:
    print "Even Number"
else:
    print"number is odd"

Solution 3

All you need is

len(listName)

Which will give you the length.

I guess you could also do this then

if len(listName) % 2 == 0:
    return True  # the number is even!
else:
    return False # the number is odd!

Solution 4

if len(mylist)%2==0:
     #even
else:
     #odd

Solution 5

def has_even_length(some_sequence):
    return not len(some_sequence)%2

def has_odd_length(some_sequence):
    return bool(len(some_sequence)%2)
Share:
14,467
user3029969
Author by

user3029969

Updated on June 14, 2022

Comments

  • user3029969
    user3029969 almost 2 years

    How can I find out if there is even, or odd, number of elements in an arbitrary list.

    I tried list.index() to get all of the indices... but I still don't know how I can tell the program what is an even and what is an odd number.

    • loopbackbee
      loopbackbee over 10 years
      you can get the number of elements of a list using the len() builtin function
    • user3029969
      user3029969 over 10 years
      @goncalopp... but how would I tell it is odd number of even
    • dm03514
      dm03514 over 10 years
      len(your_list) % 2 == 0
    • user3029969
      user3029969 over 10 years
      @dm03514 ... what does your code mean
    • datenwolf
      datenwolf over 10 years
      @user3029969: It does what you asked for.
  • user3029969
    user3029969 over 10 years
    but how would I tell it is odd number of even for any arbitrary list
  • datenwolf
    datenwolf over 10 years
    By applying modulus 2 on the returned length of the list. Which is exactly what codehorse did in his answer.
  • jonhopkins
    jonhopkins over 10 years
    @user3029969, the code len(listName) % 2 is dividing the number of elements in the array by 2 and returning the remainder. If the remainder is 0, then the number of elements is divisible by 2, which means it is even. If it returns 1, then it is odd.
  • Ed S.
    Ed S. over 10 years
    return len(listName) % 2 == 0