下面的元组的列表:元组到字典中
x= [('a',1),('b', 2)]
我想将其转换为:
x_1 = {'a' : 1, 'b': 2}
如果我使用字典(X),该字典变得无序,我想它以完全相同的顺序。 真的需要为我的课程作业,请大家帮忙快速
下面的元组的列表:元组到字典中
x= [('a',1),('b', 2)]
我想将其转换为:
x_1 = {'a' : 1, 'b': 2}
如果我使用字典(X),该字典变得无序,我想它以完全相同的顺序。 真的需要为我的课程作业,请大家帮忙快速
使用collections.OrderedDict()
如果顺序必须保存:
>>> from collections import OrderedDict
>>> x= [('a',1),('b', 2)]
>>> x_1 = OrderedDict(x)
>>> for key in x_1:
... print(key)
...
a
b
你需要collections.ordereddict
>>> from collections import OrderedDict
>>> x= [('a',1),('b', 2)]
>>> x = OrderedDict(x)
>>> x
OrderedDict([('a', 1), ('b', 2)]) # Order is preserved
这看起来并不像Python字典,但它实际上可以从下面的例子中看出:
>>> x['a']
1
>>> x['b']
2
>>> for key,val in x.items():
... print(key,val)
...
a 1
b 2
根据定义,字典在Python(或关联数组)是无序数据结构,其存储键值数据,并允许用户快速的方式由下式给出键,添加到提取值一对新的键值或删除现有的一对。这个数据结构必须是无序的,以使所有必要的算法能够快速工作。
有关字典的更多信息,请参阅wikipedia。
如果您确实需要使用密钥顺序,我建议您分别创建字典和列表或密钥。它会占用更多的内存,但通常会更快。
x = [('a', 1), ('b', 2)]
dct = dict(x) # dictionary
kys = zip(*x)[0] # tuple of keys
祝你好运!
这工作完美,直到我打印出的键和值,程序说ValueError:太多的值解压(预期2) 我用这个,因为我希望他们在同一行: 的关键在x_1: print(key,values) – 2014-12-27 16:20:09
@PratyushKhurana,'x_1.items()'同时返回'key'和'value',简单的迭代在'x_1'上只返回'key'。因此,使用'for key,x_1:print(key,values)'中的值'来代替。 – 2014-12-27 16:37:02
@PratyushKhurana:听起来像你想迭代'x_1.items()'而不是那么。 – 2014-12-27 16:58:16