gpt4 book ai didi

Python字典没有按顺序排列

转载 作者:太空狗 更新时间:2023-10-30 00:31:57 26 4
gpt4 key购买 nike

我创建了一个字母表的字典,其值从 0 开始,并根据 word 文件增加一定数量。我对初始字典进行了硬编码,我希望它保持按字母顺序排列,但它根本没有。我希望它按字母顺序返回字典,基本上与初始字典保持相同。

我怎样才能保持秩序?

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()

最佳答案

Python 3.7+ 更新:

现在有词典 officially maintain insertion order适用于 Python 3.7 及更高版本。


Python 3.6 更新:

字典在 Python 3.6 中维护插入顺序,但是,this is considered an implementation detail and should not be relied upon .


原始答案 - 直到并包括 Python 3.5:

字典没有排序,也不会为您保留任何顺序。

您可以使用有序字典,它维护插入顺序:

from collections import OrderedDict
letterDict = OrderedDict([('a', 0), ('b', 0), ('c', 0)])

或者您可以只返回字典内容的排序列表

letterDict = {'a':0,'b':0,'c':0}
sortedList = sorted([(k, v) for k, v in letterDict.iteritems()])

print sortedList # [('a', 0), ('b', 0), ('c', 0)]

关于Python字典没有按顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27262266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com