Ever have two lists in python and you want to know what how much of one list the other contains? This code snippet will help you do that.

If you ever have two lists in python and wish to find out what percentage
one list has of another.  You could use this code to find out.

li1 = [1,2,3,4,5,6,7,8]
li2 = [1,2,3,4,9]

def listPercentage(list_to_check, parent_list):
    list_to_check is the list that you wish to know how many are in
    another list.  the parent_list is the list that you wish to see
    how many the other list has of. You're checking what percentage
    of the values in list_to_check are in parent_list.
    global list_percentage
    perCounter = 0 #This counter is the key to finding out the percentage
    This FOR loop will run through the list you want to check, in this case
    li2.  If it finds that the number is in the parent list, in our case li1,
    then it will add 1 to ther perCounter.  At the end it divides the
    perCounter by the parent list to get the percentage.
    for i in list_to_check:
        if i in parent_list:
            perCounter += 1
    list_percentage = perCounter / float(len(parent_list))
    list_percentage = list_percentage * 100
    list_percentage = round(list_percentage)
    return list_percentage

The number that gets spit out to the screen is the percentage of li1
that li2 contains.  If you run this bit of code exactly as it was
then you should get 25%, because that is how much of li1 that li2

print list_percentage
10 Years
Discussion Span
Last Post by vegaseat

Since your function returns list_percentage, call your function this way:
list_percentage = listPercentage(li2,li1)
print list_percentage
You don't need the 'ugly global' in the function.
Interesting code otherwise!

Also, the code as is 'spits out' 50% not 25%
If you change li2 to [1,2,3,4,4,4,4,9] things get goofy!

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.