我有这段代码,从d = {}
开始的最后一段代码。
我试着用文字中的行号打印单词,但它不起作用,它只打印单词-有人知道为什么吗?在
import sys
import string
text = []
infile = open(sys.argv[1], 'r').read()
for punct in string.punctuation:
infile = infile.replace(punct, "")
text = infile.split("\n")
dict = open(sys.argv[2], 'r').read()
dictset = []
dictset = dict.split()
words = []
words = list(set(text) - set(dictset))
words = [text.lower() for text in words]
words.sort()
d = {}
counter = 0
for lines in text:
counter += 1
if word not in d:
d[words] = [counter]
else:
d[words.append[counter]
print(word, d)
此代码输出:
^{pr2}$我希望它输出:
^{3}$
text
是一个单词的列表,它是而不是行的列表。当您这样做时:你是不可逆转的,永远丢掉一个单词和它所在的行之间的所有联系。所以当你以后写的时候
^{pr2}$这是个谎言:^{的条目是单词,不是行。如果不是的话,那么下面这一行:
将完全被破坏这依赖于
text
的项目是单词,而不是行。在顺便说一句,当你这样做的时候:
text
现在与words
中的最后一个项目绑定在一起,您已经销毁了它以前拥有的任何其他值。在建议一:停止将标识符用于许多不同的、不兼容的目的。对你自己做出承诺,在你的任何一个程序中,没有一个标识符会被绑定到两个不同的东西上。这至少可以减少你管理者在这么少的几行代码上造成的令人难以置信的混乱。在
相关问题 更多 >
编程相关推荐