字典不是停留在python的顺序
发布时间:2020-12-20 12:07:33 所属栏目:Python 来源:网络整理
导读:我创建了一个字母表字典,其值从0开始,并根据单词文件增加一定量.我对初始字典进行了硬编码,我希望它按字母顺序排列,但它根本不存在.我希望它按字母顺序返回dictionart,基本上和初始字典保持一致.我怎么能保持秩序? from wordData import*def letterFreq(wor
我创建了一个字母表字典,其值从0开始,并根据单词文件增加一定量.我对初始字典进行了硬编码,我希望它按字母顺序排列,但它根本不存在.我希望它按字母顺序返回dictionart,基本上和初始字典保持一致.我怎么能保持秩序?
from wordData import* def letterFreq(words): totalLetters = 0 letterDict = {'a':0,'b':0,'c':0,'d':0,'e':0,'f':0,'g':0,'h':0,'i':0,'j':0,'k':0,'l':0,'m':0,'n':0,'o':0,'p':0,'q':0,'r':0,'s':0,'t':0,'u':0,'v':0,'w':0,'x':0,'y':0,'z':0} for word in words: totalLetters += totalOccurences(word,words)*len(word) for char in range(0,len(word)): for letter in letterDict: if letter == word[char]: for year in words[word]: letterDict[letter] += year.count for letters in letterDict: letterDict[letters] = float(letterDict[letters] / totalLetters) print(letterDict) return letterDict def main(): filename = input("Enter filename: ") words = readWordFile(filename) letterFreq(words) if __name__ == '__main__': main() 解决方法
字典不是订购的,不会为您保留任何订单.
您可以使用有序字典: from collections import OrderedDict letterDict = OrderedDict([('a',0),('b',('c',0)]) 或者你可以只返回你的字典内容的排序列表 letterDict = {'a':0,'c':0} sortedList = sorted([(k,v) for k,v in letterDict.iteritems()]) print sortedList # [('a',0)] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |