为什么我的’dict’在Python的一致性程序中没有属性’sort’错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了为什么我的’dict’在Python的一致性程序中没有属性’sort’错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1798字,纯文字阅读大概需要3分钟。
内容图文
任务是编写一个程序,提示输入文件名,然后生成该文件的索引.
防爆.一致性是一个按字母顺序排列的索引,它显示文档中每个单词出现的行.例如,此段落的一致性可能显示为:
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的每个值.例如:
>>> dict = {}
>>> dict["apple"] = "red"
>>> dict["banana"] = "yellow"
>>> dict
{'apple': 'red', 'banana': 'yellow'}
在这个例子中,键是“apple”和“banana”,值是“红色”和“黄色”.由于这是家庭作业,我将由您决定是否为您的作业确定适当的键和值.
此外,这一行有问题:
for word in line:
line是一个字符串,所以你实际上是在看每一个字符,而不是每个字.你必须找到一些方法将行转换为单词列表……
最后,您的最终陈述只会打印最后一个字.你正在建立一个字典,但是你没有打印字典,你打印的是单个值.一旦你建立了dict,你应该打印dict本身.
myDict[word] = linenum
if word in myDict:
myDict.sort()
else:
myDict.append(word)
你是在正确的道路上,但排序字典不是处理出现不止一次的单词的正确方法(此外,dict没有排序方法,这就是为什么你会收到错误,甚至如果确实如此,那么你就不需要它了.此外,一旦为键指定了值,它就会被添加到字典中,因此它已经被“追加”了.
在您的示例中,单词a出现3次,输出列出它出现的每一行,因此您需要一种方法来存储每个单词的行列表.
内容总结
以上是互联网集市为您收集整理的为什么我的’dict’在Python的一致性程序中没有属性’sort’错误全部内容,希望文章能够帮你解决为什么我的’dict’在Python的一致性程序中没有属性’sort’错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。