从文件读到字典

时间:2013-05-20 17:39:03

标签: python

我有两列的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。文件中的字符串顺序是正确的。

1 个答案:

答案 0 :(得分:0)

字典无序。从技术上讲,订单是

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

这取决于项目的插入顺序以及键的哈希值。如果您使用的是python2.7,则可以使用记住插入顺序的collections.OrderedDict。如果您真的感兴趣,请参阅this answer,了解Cpython如何确定映射的顺序。