sys.stdin を介して各単語の頻度の量を取得する必要があるプロジェクトがあります。
その部品を入手しました。2番目の部分は、各単語の行番号を取得しています。それを取得したと感じていますが、出力文字列に行番号を追加することはできません。単語の頻度が同じ場合、アルファベット順に並べ替える方法もわかりません
これが私のコードです:
if __name__ == '__main__':
wordCount = defaultdict(list)
words = {}
for i, line in enumerate(sys.stdin.readlines()):
wordCount[line].append(i+1) #add the line number to each element in the line
for word in line.lower().split():
words[word] = words.get(word, 0) + 1
sortedList = sorted(words.items(), key=itemgetter(1), reverse=True)
for word, frequency in sortedList:
print("%d %s" % (frequency, word))," " # <-- HERE I NEED TO ADD THE LINE NUMBER AND ALSO SORT ALPHABETICALLY
「Python は本当にクールです」と入力した場合 #1 行目「私は本当に Python で作業しています」 #2 行目
出力は次のようになります。
2 python 1 2
2 really 1 2
1 am 2
1 cool 1
1 I 2
1 is 1
1 with 2
1 working 2