Python 如何重新排列/更改字典中的类型字典中的键值,我不想排序它

Python 如何重新排列/更改字典中的类型字典中的键值,我不想排序它,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我有一个带有键值的字典,但我想根据我的喜好重新排列/更改dict中键值的类型。我怎么做 例如: Dict = {'a':19,'b':30, 'c':"New", 'd': 6} 我想将b作为位置1的键,和/或将a作为列表的键,依此类推。 注意:我不想对dict排序!但我自己决定: 例如: 如果dict中存在该键,则将该键的值置于位置1 所以我的最终结果是 Dict = {'b':30, 'a':[19], 'd':6, 'c':"new"} 您不能将钥匙b置于位置1或任何位置。字典原则上是

我有一个带有键值的
字典
,但我想根据我的喜好重新排列/更改
dict
中键值的类型。我怎么做

例如:

Dict = {'a':19,'b':30, 'c':"New", 'd': 6}
我想将
b
作为位置1的键,和/或将
a
作为
列表的键,依此类推。
注意:我不想对dict排序!但我自己决定:
例如:

如果dict中存在该键,则将该键的值置于位置1

所以我的最终结果是

Dict = {'b':30, 'a':[19], 'd':6, 'c':"new"}

您不能将钥匙
b
置于位置1或任何位置。字典原则上是无序的。通常没有太多理由关心订单

但是,如果您确实关心顺序,那么您必须在保存数据的dict之外自己维护它。你不能坚持让dict自己维持秩序,因为dict不是那样工作的。例如:

orderby =  ["b", "a", "d", "c"]
for key in orderby:
    do_something_with(key, Dict[key])
要更改顺序,例如交换“a”和“b”的位置:

collections
中还有一个
OrderedDict
,但这主要是为了记住添加内容的顺序,而这似乎不是您想要的

要更改与
'a'
关联的值,只需分配它:

Dict['a'] = [19]

我认为重新排列是不可能的,因为字典不是有序结构。第二种方法,您只需通过以下方式:

Dict['a'] = list(Dict['a'])

字典(在Python2.7中)没有顺序,没有位置的概念,但是有集合。OrderedDict
那么解决方案是什么呢?那么为什么
19
现在在一个列表中
[19]
?我想把它作为一个列表,它的一部分为什么只有
19
发生了变化?您如何定义新订单?正如我所说,您可以使用
OrderedDict
来保留插入顺序。我想保留一定的顺序。我从一个专用的输出中获取键值,然后基于当前的键值,我想对其进行排序,尤其是对键进行排序,即类型或顺序取决于键。您可以按顺序从字典中获取键,但不能坚持以这种方式存储它们。这样做:
为k排序(Dict.keys()):用(Dict[k])
做某事。如果你不希望它们按字母顺序排列,而是你自己的任意顺序排列,那么你需要第二本字典来存储顺序:
{0:“b”,1:“a”,2:“d”,3:“c”}
,或者一个列表
[“b”,“a”,“d”,“c”]
。我完全不明白你的意思,但你能详细解释我吗?@jaison我在编辑问题时谈到了这一点。如果有什么你仍然不明白的,那么请说出它是什么。
Dict['a'] = list(Dict['a'])