ValueError: max() arg is an empty sequence

I’ve created a GUI using wxFormBuilder that should allow a user to enter the names of “visitors to a business” into a list and then click one of two buttons to return the most frequent and least frequent visitors to the business.

I created an earlier version that, unfortunately, gave me the range of visitors, rather than the name of the most/least frequent visitor. I’ve attached a screenshot of the GUI I’ve created to help add a little clarity to the issue ( http://imgur.com/XJnvo0U ).

A new code version takes a different tack than the earlier version, and I can’t get it to throw anything. Instead, I keep receiving this error:

ValueError: max() arg is an empty sequence

In relation to this line:

self.txtResults.Value = k.index(max(v))

import wx
import myLoopGUI
import commands

class MyLoopFrame(myLoopGUI.MyFrame1):
    def __init__(self, parent):
        myLoopGUI.MyFrame1.__init__(self, parent)

    def clkAddData(self,parent):
        if len(self.txtAddData.Value) != 0:
            try:
                myname = str(self.txtAddData.Value)
                self.listMyData.Append(str(myname))
            except:
                wx.MessageBox("This has to be a name!")            
        else:
            wx.MessageBox("This can't be empty")




    def clkFindMost(self, parent):
        self.listMyData = []
        unique_names = set(self.listMyData)
        frequencies = {}
        for name in unique_names:
            if frequencies.get[name]:
                frequencies[name] += 1
            else:
                frequencies[name] = 0

        v = list(frequencies.values())
        k = list(frequencies.keys())
        self.txtResults.Value = k.index(max(v))

Leave a Comment