我有這段代碼 代碼的最後一位從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)
這段代碼輸出:
helo
goin
ist
我希望它輸出:
helo #tab# 3 4
goin #tab# 1 2
你的代碼甚至在語法上都不是有效的......如果你需要幫助,你將不得不解決。更何況,如何解釋它應該如何工作?示例輸出,你得到了什麼,它應該給予什麼? – 2010-05-24 04:10:35
什麼意思由sytacillay有效如何修復它即時新? 並確定如何添加輸出和它應該做什麼 – jad 2010-05-24 04:15:23
此代碼不運行或工作原因如下:括號不平衡,不正確的縮進,變量'word'從未設置等。請張貼您的實際代碼。此外,僅供參考,您可以使用'collections.defaultdict(list)'而不是普通字典來簡化您的代碼,以便您不必測試'如果d中的單詞':您可以只說'd [單詞] .append(計數器)'。 – 2010-05-24 04:15:45