删除嵌套字典并重新排序键?

问题描述 投票:0回答:1

我有嵌套字典,我正在尝试删除其中一些字典,同时在删除后重新排序键。

a = {0:[1,2],1:[3,4,5],2:[6,7,8]}`

for i in range(len(a)):
    if len(a[i]) != 3:
        del a[i]

返回的字典是

a = {1:[3,4,5],2:[6,7,8]}

我需要重新排序按键,这样我最终会得到

a = {0:[3,4,5],1:[6,7,8]}

python dictionary key
1个回答
0
投票

这是因为当你从字典中删除键时,字典的长度会发生变化。您可以在开始删除键之前将它们存储到变量中。

a = {0:[1,2],1:[3,4,5],2:[6,7,8]}

items = list(a.items())

for key,value in items:
    if len(value)!=3:
        a.pop(key)
        
print(a)
© www.soinside.com 2019 - 2024. All rights reserved.