我对Python非常陌生,我正在尝试编写一个GUI程序,以便从列表中为类分配提取最频繁和最不频繁的名称.我一直在接受
TypeError:'int'对象不可调用
此代码出错,我知道它与该行有关:
word_frequencies += float[self.listMyData.Count(word)]/len[self.listMyData]
Run Code Online (Sandbox Code Playgroud)
但我不确定错误在说什么.我在这里看了类似的问题,但仍然不确定我做错了什么.任何帮助将不胜感激.
这是完整的代码:
import wx
import myLoopGUI
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):
unique_words = []
for word in range(self.listMyData.GetCount()):
if word not in unique_words:
unique_words += [word]
word_frequencies = []
for word in unique_words:
word_frequencies += float[self.listMyData.Count(word)]/len[self.listMyData]
max_index = 0
frequent_words =[]
for i in range(len(unique_words)):
if word_frequencies[i] >= word_frequencies[max_index]:
max_index = i
frequent_words += unique_words[max_index]
self.txtResults.Value = frequent_words
myApp = wx.App(False)
myFrame = MyLoopFrame(None)
myFrame.Show()
myApp.MainLoop()
Run Code Online (Sandbox Code Playgroud)
Count是的财产myListData.你把括号" ()"放在它后面,好像它是一个函数,但事实并非如此.它只是一个整数值.这就像这样做:
y = 5
x = y(word)
Run Code Online (Sandbox Code Playgroud)
这没有意义.我不知道你想要做什么word和myListData.Count,但也许你要寻找的是self.myListData[word].Count.
如用户3666197所述,您还想更改float[...]为float(...).
| 归档时间: |
|
| 查看次数: |
1143 次 |
| 最近记录: |