如何在字典中特定的键之间交换值?

3

假设你有一个这样的字典:

d = {
    'A': 'content_for_A',
    'B': 'content_for_B'
}

什么是最有效的方法来交换两个条目之间的值?因此结果应该像这样:
d = {
    'A': 'content_for_B',
    'B': 'content_for_A'
}

当然,你可以创建一个新的字典d2并执行d2['A'] = d['B']; d2['B'] = d['A'],但是这是推荐的方式吗?是否有一种更有效的方法而不需要创建一个新的字典?
2个回答

17
d['A'], d['B'] = d['B'], d['A']

Tuple(元组)解包是Python中的一个很棒的工具,可以在不需要创建中间变量的情况下交换两个对象的值。


1
哈哈,我其实对这个语法很熟悉,但不知道它也适用于字典。虽然我很了解Python,但这种语言有时仍会让我感到惊喜。:) 谢谢。 - pemistahl
@PeterStahl 它适用于任何你可以分配给;)的东西。 - Volatility

0

{'1': '1', '2': None, '3': '3'}

预期结果

{'1': '3', '2': None, '3': '1'}

解决方案

dict([(key, num) for (key, _), num in zip(your_dict.items(), reversed(list(your_dict.values())))])

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