在python中用重叠键重命名字典中的键

2024-05-13 21:49:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下列词典

{180: [],
 192: [],
 204: [],
 216: [u'NVDA US Equity', u'UPS US Equity'],
 228: [],
 240: [u'AMZN US Equity'],
 252: [u'BRK/B US Equity'],
 264: [],
 276: [],
 288: [],
 300: []}

我想对键重新排序,以便在稍后使用的代码中添加计数器中的值。所以我想把结果数据帧变成这样

{312: [],
 300: [],
 288: [],
 276: [u'NVDA US Equity', u'UPS US Equity'],
 264: [],
 252: [u'AMZN US Equity'],
 240: [u'BRK/B US Equity'],
 228: [],
 216: [],
 204: [],
 192: []}

但我似乎遇到的问题是,由于某些键重叠,所以在运行以下命令时,会删除一些结果

order_key_list = list(range(180,312,12))
df_key_list = (range(312, 180, -12))

for i in range(len(df_key_list)):
order_name_list[df_key_list[i]] = order_name_list.pop(order_key_list[i])

当我运行上面的代码时,我得到以下结果。有人能帮我弄到上面想要的词典吗

{192: [],
 204: [],
 216: [u'NVDA US Equity', u'UPS US Equity'],
 228: [],
 240: [u'AMZN US Equity'],
 312: []}

Tags: key代码namedforderrangelist词典
1条回答
网友
1楼 · 发布于 2024-05-13 21:49:00

在您的示例中,您只需重新分配键:

d = {180: [],
  192: [],
  204: [],
  216: [u'NVDA US Equity', u'UPS US Equity'],
  228: [],
  240: [u'AMZN US Equity'],
  252: [u'BRK/B US Equity'],
  264: [],
  276: [],
  288: [],
  300: []}
d[240], d[252] = d.get(252, []), d.get(240, [])

输出:

{192: [], 264: [], 204: [], 276: [], 216: [u'NVDA US Equity', u'UPS US Equity'], 288: [], 228: [], 300: [], 240: [u'BRK/B US Equity'], 180: [], 252: [u'AMZN US Equity']}

相关问题 更多 >