python - 如何使用相应的键值重命名字典中的值?
问题描述
我有一本看起来像这样的字典:
{
'6690_team': [6620, 6689],
'6620_mdas': [6192, 6573],
'6573_megan': [6535, 6572],
'6572_regionalise national league north': [6567, 6570],
'6570_sacha baron cohen': [6551, 6569],
'6569_sacha baron cohen': [6380, 6568],
'6568_first week': [6555, 6566]
}
如何使用相应键的名称重命名值?例如,键6690_team
有两个值:6620
和6689
。但6620_mdas
也是带有前缀的键6620
,所以我想重命名具有该值作为前缀的第一个键的值(6620
在键的数组中)。6690_team
所以它会变成:
{
'6690_team': [6620_mdas, 6689]
}
这会发生在其他键上,所以最终的字典看起来像:
{
'6690_team': ['6620_mdas', '6569_sacha baron cohen'],
'6620_mdas': [6192, '6573_megan'],
'6573_megan': [6535, '6572_regionalise national league north'],
'6572_regionalise national league north': [6567, '6570_sacha baron cohen'],
'6570_sacha baron cohen': [6551, '6569_sacha baron cohen'],
'6569_sacha baron cohen': [6380, '6568_first week'],
'6568_first week': [6555, 6566]
}
解决方案
尝试:
dct = {
"6690_team": [6620, 6689],
"6620_mdas": [6192, 6573],
"6573_megan": [6535, 6572],
"6572_regionalise national league north": [6567, 6570],
"6570_sacha baron cohen": [6551, 6569],
"6569_sacha baron cohen": [6380, 6568],
"6568_first week": [6555, 6566],
}
tmp = {int(k.split("_")[0]): k for k in dct}
for v in dct.values():
v[:] = [tmp.get(i, i) for i in v]
print(dct)
印刷:
{
"6690_team": ["6620_mdas", 6689],
"6620_mdas": [6192, "6573_megan"],
"6573_megan": [6535, "6572_regionalise national league north"],
"6572_regionalise national league north": [6567, "6570_sacha baron cohen"],
"6570_sacha baron cohen": [6551, "6569_sacha baron cohen"],
"6569_sacha baron cohen": [6380, "6568_first week"],
"6568_first week": [6555, 6566],
}
推荐阅读
- google-apps-script - 如何使用 Google Apps 脚本计算百分比
- vba - 自动化 Word 宏代码以用连字符替换“^=”等运算符字符串?
- netlogo - 如何在每设定数量的滴答声中杀死和再生海龟
- python - 用 json.loads(r.text) 过滤掉 json
- ruby-on-rails - 如何在 ruby on rails 上绘制 2D 矢量场?
- performance - Visual Studio Code C++ Intellisense 性能问题
- javascript - 当我使用导入的 Google 字体时,我无法在 JS 中获得 div 的真实高度?
- vim - 自动关闭标签在 neo vim 中不起作用
- python - 使用多处理时如何设置 Gunicorn 的工作人员以共享数据/状态?
- javascript - BackEndUrl 未定义