【问题标题】:How can i properly change the keys name in my dict?如何正确更改我的字典中的键名?
【发布时间】:2018-02-09 12:51:14
【问题描述】:

尝试使用此代码更改我的字典键名称:

for key in my_dict_other:
    new_key = key + '/' + str(my_dict[key])
    # new_key = key + '/' + str(my_dict[key][0][0]) + '-' + str(my_dict[key][0][1])
    my_dict_other[new_key] = my_dict_other.pop(key)

但是其中一个关键是像这样"9-9/[['2550', '1651']]/[]" 而不是这样"9-9/[['2550', '1651']]" 我该如何修复它并理想地调整我的代码以让它们像这样"9-9/2550-1651" 那样出来为此我尝试了这个@987654325 @ 但我在某些时候得到了超出范围的列表。

编辑:我如何制作一个正则表达式来删除所有出现的'/[]',例如39-10/[['5400', '3601']]/[]/[] 的输出应该是39-10/[['5400', '3601']]

【问题讨论】:

  • 这听起来像是一个重度分层的 XY 问题。我不认为使用列表的字符串表示作为字典键的一部分是要走的路。您能否展示更多关于您实际想要实现的目标的背景信息?

标签: python regex python-3.x dictionary


【解决方案1】:

这可能有效:

import re

key = "9-9/[['2550', '1651']]/[]"
newkey = re.sub("[\[\]']", "", key.replace("/[]", ""))

# '9-9/2550, 1651'

【讨论】:

    【解决方案2】:

    如果我正确理解了您的示例,您可以使用字典理解而不是正则表达式:

    my_dict = {k.replace("/[]", ""): v for k, v in my_dict.items()}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-23
      • 2021-02-01
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      相关资源
      最近更新 更多