# Miller-Ranum listings 4.8 and 4.9

def frequencyTable(alist): # uses a dictionary
    countdict = {}

    for item in alist:
        if item in countdict:
            countdict[item] = countdict[item] + 1
        else:
            countdict[item] = 1

    itemlist = list(countdict.keys())
    itemlist.sort()

    print("ITEM","FREQUENCY")

    for item in itemlist:
        print(item,"     ",countdict[item])


def frequencyTableAlt(alist): # more work without dictionary
    print("ITEM","FREQUENCY")
    slist = alist[:]
    slist.sort()

    countlist = []

    previous = slist[0]
    groupCount = 0
    for current in slist:
        if current == previous:
            groupCount = groupCount + 1
            previous = current    # Is this line necessary?
        else:
            print(previous,"     ",groupCount)
            previous = current
            groupCount = 1

    print(current,"     ",groupCount)
