python - 为什么我在 Python 的一致性程序中得到 'dict' has no attribute 'sort' 错误

标签 python python-2.7

任务是编写一个程序,提示输入文件名,然后生成该文件的索引。 前任。索引是按字母顺序排列的索引,显示文档中每个单词出现的行。例如,本段的索引可能显示为:

Word          Line Number
a             1 1 2
alphabetical  1
an            1
appear        2

这里我列出了一个列表,以便我可以对单词进行排序。

我有这个代码:

f = open(raw_input("Enter a filename: "), "r")
myDict = {}
linenum = 0

for line in f:
line = line.strip()
line = line.lower()
line = line.split()
linenum += 1

for word in line:
    word = word.strip()
    word = word.lower()
    myDict[word] = linenum

    if word in myDict:
        myDict.sort()
    else:
        myDict.append(word)

print "%-15s %-15s" %("Word", "Line Number")
print "%-15s %-15d" %(myDict.keys(), myDict.values())

当我现在运行程序时,它说“dict”没有属性“sort”。你能解释一下吗?

文件与示例相同,输出也应该是上面的示例。我是 python 的新手,请帮忙:[

最佳答案

我认为使用字典是有意义的,但是您必须在添加到字典的每个值的同时添加一个键。例如:

>>> dict = {}
>>> dict["apple"] = "red"
>>> dict["banana"] = "yellow"
>>> dict
{'apple': 'red', 'banana': 'yellow'}

在这个例子中,键是“apple”和“banana”,值是“red”和“yellow”。由于这是家庭作业,我将留给您来为您的作业确定合适的键和值。

此外,这一行有问题:

for word in line:

line 是一个字符串,因此您实际上是在查看 line 中的每个字符,而不是每个单词。您必须找到一些方法将 line 转换为单词列表...

最后,您的最终陈述只会打印最后阅读的单词。你正在构建一个字典,但你不是在打印字典,而是在打印一个值。构建字典后,您应该打印字典本身。


myDict[word] = linenum

if word in myDict:
    myDict.sort()
else:
    myDict.append(word)

你走在正确的道路上,但对字典进行排序并不是处理出现不止一次的单词的正确方法(此外,dict 没有排序方法,这就是你得到错误的原因,但即使有,你也不需要它)。此外,一旦您为键分配了一个值,它就会被添加到字典中,因此它已经被“追加”了。

在您的示例中,单词 a 出现了 3 次,并且输出列出了它出现的每一行,因此您需要一种方法来存储每个单词的行列表。

关于python - 为什么我在 Python 的一致性程序中得到 'dict' has no attribute 'sort' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021570/

相关文章:

python - Cherrypy 和 JSON Arduino Web 界面

mysql - python /MySQL : Programming error 1146 - Table doesn't exist

python-2.7 - 缺少libAnalyzer

python - "Can' 找不到 Python 可执行文件..."- npm 安装挂起

python - 如何并行化包含后请求 API 调用的 python 中的 for 循环?

python - 如何在两个不同的远程 Controller 下 ping 连接到在 mininet 中创建的两个不同虚拟交换机的两个虚拟主机

python - 为什么 "raise"和 "del"不是 Python 中的函数?

python - Pandas ;棘手的数据透视表

Python pygame mac 导入

python - PyQt QTableWidget 检索编辑字段