python - 在嵌套字典中切换两个字典
问题描述
我正在尝试在另一个字典中交换两个字典。
我想看到以下结果:
input: {10: {"name": "name_value1", "price1": "price_value1"},
30: {"name": "name_value3", "price3": "price_value3"},
20: {"name": "name_value2", "price2": "price_value2"}}
output:{10: {"name": "name_value1", "price1": "price_value1"},
20: {"name": "name_value2", "price2": "price_value2"},
30: {"name": "name_value3", "price3": "price_value3"}}
我尝试了很多不同的东西,有时值的顺序正确,但键没有更新。下面的代码就是一个例子。
def my_sort(dct):
index = 0
key_list = list(dct.keys())
while index < (len(dct) - 1):
if key_list[index] > key_list[index + 1]:
dct[key_list[index]], dct[key_list[index + 1]] = dct[key_list[index + 1]], dct[key_list[index]]
key_list[index], key_list[index + 1] = key_list[index + 1], key_list[index]
index = 0
else:
index += 1
return dct
此代码输出以下内容:
{10: {"name": "name_value1", "price1": "price_value1"},
30: {"name": "name_value2", "price2": "price_value2"},
20: {"name": "name_value3", "price3": "price_value3"}}
注意:我不能为此使用外部库/框架,也不能使用 sorted() 之类的函数。
欢迎所有帮助和建议!先感谢您。
解决方案
你可以使用 sorted() 吗?
d = {10: {"name": "name_value1", "price1": "price_value1"},
30: {"name": "name_value3", "price3": "price_value3"},
20: {"name": "name_value2", "price2": "price_value2"}}
dict(sorted(d.items(), reverse=False))
输出:
{10: {'name': 'name_value1', 'price1': 'price_value1'},
20: {'name': 'name_value2', 'price2': 'price_value2'},
30: {'name': 'name_value3', 'price3': 'price_value3'}}
推荐阅读
- r - 将ggballoonplot与R中的树状图结合起来
- ios - 有没有办法在颤动中从 iOS 中排除一个包?
- linux - Linux 中用于查看已删除文件总大小的脚本
- html - 我的其他文件夹和图像无法使用并与网站链接
- python - matplotlib 中的 figsize 不会改变图形大小
- angular - 如何在同一个域中使用 Angular 和 WordPress 作为无头服务器?
- php - PrestaShop:由于国家/地区 ID 错误,税收计算错误
- apache-spark - Spark 物理计划中的重新分区和洗牌
- heroku - 反向代理作为 QuotaGuard 静态 IP 的替代方案
- visual-studio - Visual Studio 中的 CMake 命令行