加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

字典不是停留在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)]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读