我想更改字典中键的名称。我理解这是不可能的,并且为此目的 我必须用旧值创建新键,并删除原始键(我不太喜欢),或者 在` for循环中创建字典的副本,并在每次迭代中更改键的名称
当前格言:
{'form-4-var0': 125547, 'form-4-var1': 'NTMC-A935', 'form-4-var2': 'OTOGL'}
期望的格言:
{'var0': 125547, 'var1': 'NTMC-A935', 'var2': 'OTOGL'}
约束:如有可能,保留顺序(非强制性)
我所尝试的:
我尝试了类似的方法,在每个键名中添加了一些虚拟文本,效果很好
d1 = {'form-4-var0': 125547, 'form-4-var1': 'NTMC-A935', 'form-4-var2': 'OTOGL'}
d2 = {}
for key in d1:
key_modified = //key without 'form-n-' substring
d2[key_modified] = d1[key]
但是如何删除子字符串form-n-
一般来说,n只是一个数字,但它可以是2、3或m个数字。我应该用一些正则表达式吗
有没有更像Python的方法
你可以用听写理解来做到这一点。要删除额外的文本,可以使用
.replace()
另一个选择是使用split,但我不推荐这么多,因为信息可能在
form-4-
之前输出
我在下面编写的代码创建了一个全新的字典,其中包含您想要的结果:保留旧值,但更改与它们相关联的名称,并且仍然保持旧的顺序。此外,这本旧字典仍然保留着
第一个
for
循环遍历字典的每个名称,并将它们切片两次。一次删除第一个连字符(或分隔符),两次删除第二个连字符(或分隔符)。这也意味着字典名称可以是您想要的长度,但始终用连字符分隔最后一个
for
循环接受新的名称列表,并用它们和旧值构造一个新字典希望这对你或其他人有帮助
如果密钥格式相同,则可以使用
-
将其拆分,并使用拆分的最后一项试着像这样理解口述:
输出为:
相关问题 更多 >
编程相关推荐