在Python中交换字典列表中的键

7
我想交换字典中的键,但保持值不变。

该脚本将用于设置服务终止日期。实质上,新版本的发布日期是旧版本的服务终止日期。我有一个有序字典,其中包含版本作为键和发布日期作为其值。大概看起来像这样:

{'10.1.0: '2019-01-01',
 '9.3.0': '2018-11-02',
 '9.2.0': '2018-06-20',
 '9.1.0': '2018-03-06'}

我希望重新对字典进行排序,基本上将键向上移动一个位置,以便字典中包含其后继版本的发布日期。最新版本可以不含任何值或被删除。我的理想结果如下:

{'9.3.0': '2019-01-01',
 '9.2.0': '2018-11-02',
 '9.1.0': '2018-06-20'}

你能具体说明一下你使用的“有序字典”是哪个吗? - Simon Brahan
1个回答

6
尝试使用下面的代码(这仅适用于Python版本> = 3.6):
>>> d = {'10.1.0: ':'2019-01-01',
 '9.3.0': '2018-11-02',
 '9.2.0': '2018-06-20',
 '9.1.0': '2018-03-06'}
>>> dict(zip(list(d)[1:], d.values()))
{'9.3.0': '2019-01-01', '9.2.0': '2018-11-02', '9.1.0': '2018-06-20'}

OP是使用有序字典开始的。这个应该改成跟随它吗? - Simon Brahan
@SimonBrahan 你是什么意思? - U13-Forward
1
值得一提的是,在 Python 3.6 及以上版本,这可以正常工作,然而在此之前,字典是无序的(即使在 3.6 中,也不应该依赖于保持顺序)。 - buran
@U10-Forward提到了一个有序字典;这不是Python字典的默认行为。我的第一反应是他们可能在使用类似于这样的东西:https://docs.python.org/2/library/collections.html#collections.OrderedDict - Simon Brahan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接