将列表转换为字典时维护字典的顺序

时间:2016-04-06 16:41:26

标签: python list dictionary

我有一个清单

List = [('The', 'DT'), ('study', 'NN'), ('guide', 'NN'), ('does', 'VBZ'), ('not', 'RB'), ('discuss', 'VB'), ('much', 'JJ'), ('of', 'IN'), ('the', 'DT'), ('basics', 'NNS'), ('of', 'IN'), ('ethics.', 'NN')]

我使用

将其转换为字典
dic=collections.OrderedDict()
dic=dict(List)

当我打印字典时,订单不会按照它在列表中的方式进行维护。

我尝试使用OrderedDict()但仍未维护订单

3 个答案:

答案 0 :(得分:4)

只需将直接列表转换为dic = collections.OrderedDict(List)

OrderedDict

词典本身就是无序。如果您希望有一些相似的订单,则需要才能使用OrderedDict。转换回字典基本上是失败的。

请注意,OrderedDict与普通字典几乎具有相同的界面,而您在使用my_date = "February 4 - March 23, 2015" ss = re.compile(r"[a-zA-Z]+\S|\d{4}") print ss.findall(my_date) 时却没有任何损失。

答案 1 :(得分:1)

当你这样做时

dic=collections.OrderedDict()
dic=dict(List)

在第二行,您删除OrderedDict并将其替换为dict

你应该collections.OrderedDict(List)

答案 2 :(得分:0)

执行dic = dict(List)时,您正在创建一个普通(任意排序)字典。只需致电dic = collections.OrderedDict(List)