0

我有两列的txt文件:

user1 1
user2 2
user3 3
user4 4
user5 5

所以,我读到字典的列:

def read_users(filename):
    users = {}
    with open('1.txt', 'r') as f:
        for line in f:
            words = line.split()
            users[words[0]] = words[1]
    return users

函数返回以下字典:

{'user4':'4'}; {'user5':'5'}; {'user1':'1'}; {'user2':'2'}; {'user3':'3'}

为什么它以 user4 开头?它应该是从 user1 到 user5。文件中字符串的顺序是正确的。

4

1 回答 1

0

字典是无序的。从技术上讲,顺序是

  • 一致(只要您不插入或删除任何键,迭代字典将始终以相同的顺序产生结果)
  • “随意的”。不知道这些物品将按什么顺序生产。

这取决于插入项目的顺序以及键的哈希值是什么。如果你使用的是 python2.7,你可以使用一个collections.OrderedDict记住插入顺序的。如果您真的感兴趣,请参阅有关 Cpython 如何确定映射顺序的答案。

于 2013-05-20T17:40:43.160 回答