如何正确更改我的词典中的键名?

时间:2018-02-09 12:51:14

标签: python regex python-3.x dictionary

尝试使用以下代码更改我的词典键名称:

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"那样出来目的我尝试了这个new_key = key + '/' + str(my_dict[key][0][0]) + '-' + str(my_dict[key][0][1]),但我在某个时候得到了列表超出范围。

修改:如何创建一个可以删除'/[]'所有匹配项的正则表达式,例如39-10/[['5400', '3601']]/[]/[]的输出应为39-10/[['5400', '3601']]

2 个答案:

答案 0 :(得分:0)

这可能有效:

import re

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

# '9-9/2550, 1651'

答案 1 :(得分:0)

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

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