我有这个代码:
myDict = {}
myDict['Hello'] = 's'
myDict['Hallo'] = 'a'
myDict['Test'] = 'b'
myDict['Buy'] = 'hoo'
myDict['Hehe'] = 'kkk'
print(list(myDict.keys()))
它随机返回,比如:
^{pr2}$我想要的是:
['Hello','Hallo','Test','Buy','Hehe']
“你好”是第一个,“哈罗”是第二个,“测试”是第三个,“买”是第四个,“呵呵”是第五个
这非常重要,因为我想制作csv文件:
with open('names.csv', 'w', newline='') as csvfile:
fieldnames = list(myDict.keys())
writer = csv.DictWriter(csvfile, fieldnames=fieldnames, delimiter = ";")
writer.writeheader()
writer.writerow(myDict)
使用OrderedDict。 提醒一下,因为python3.6dict是按插入顺序排列的。你用什么版本?在
我运行你的代码:
它的打印信息是:
^{pr2}$你的代码工作正常。在
这是一个duplicated问题:
Python3.7+
在python3.7.0中,dict对象的插入顺序保留特性已被声明为Python语言规范的一个官方部分,因此,您可以依赖它。在
Python 3.6(CPython)
对于python3.6,对于Python的CPython实现,默认情况下字典维护插入顺序。不过,这被认为是一个实现细节;您仍然应该使用集合.OrderedDict如果您希望在Python的其他实现中保证插入顺序。在
Python<;3.6
使用集合.OrderedDict当需要记住插入项顺序的dict时初始化。在
相关问题 更多 >
编程相关推荐