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

时间:2018-01-28 16:28:06

标签: python dictionary

我有以下字典

{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: []}

1 个答案:

答案 0 :(得分:0)

对于您的示例,您只需重新分配密钥:

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']}