Ich habe eine GUI mit wxFormBuilder erstellt, die es einem Benutzer erlauben sollte, die Namen von "Besuchern eines Unternehmens" in eine Liste einzugeben und dann auf eine der beiden Schaltflächen zu klicken häufigste und am wenigsten häufige Besucher des Geschäfts.ValueError: max() arg ist eine leere Sequenz
Ich erstellte eine frühere Version, die mir leider die Anzahl der Besucher gab, anstatt den Namen des am meisten/am wenigsten häufigen Besuchers. Ich habe einen Screenshot der GUI hinzugefügt, die ich erstellt habe, um ein wenig Klarheit in das Problem zu bringen (http://imgur.com/XJnvo0U).
Eine neue Codeversion nimmt eine andere Wende als die frühere Version, und ich kann es nicht bekommen, irgendetwas zu werfen. Stattdessen ich immer erhalten diesen Fehler:
Valueerror: max() arg eine leere Sequenz
In Bezug auf diese Zeile:
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))
def clkFindLeast(self, parent):
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(min(v))
myApp = wx.App(False)
myFrame = MyLoopFrame(None)
myFrame.Show()
myApp.MainLoop()
Wenn 'Len (v) == 0 'ist, in' clkFindMost', 'max (v)' 'hebt ValueError'. –