我最初有一个字典,如下所示:
mydict = {int(i): 'values' for i in range(5)}
{0: 'values', 1: 'values', 2: 'values', 3: 'values', 4: 'values'} # output
然后我删除了两个索引:
del mydict[0]
del mydict[3]
{1: 'values', 2: 'values', 4: 'values'} # output
现在我想";reindex";把字典翻译成
{0: 'values', 1: 'values', 2: 'values'} # output
我真正的字典比这个大得多,所以不可能手动做。。
您可以使用enumerate
:
mydict = {1: 'a', 2: 'b', 4: 'd'}
mydict = dict(enumerate(mydict.values()))
print(mydict) # {0: 'a', 1: 'b', 2: 'd'}
请注意,这仅适用于python 3.7+。在此之前,不需要dict来保持顺序。
如果你确实想更安全,你可以先对物品进行分类:
mydict = {2: 'b', 1: 'a', 4: 'd'}
mydict = dict(enumerate(v for _, v in sorted(mydict.items())))
print(mydict) # {0: 'a', 1: 'b', 2: 'd'}
您可以同时使用zip
(ref(以另一种方式执行此操作。如果:
dict_ = {1: 'values', 2: 'values', 4: 'values'}
d = dict(zip(range(3), list(dict_.values())))
# {0: 'values', 1: 'values', 2: 'values'}
这里,range(3)
是将作为新键的目标列表。