gpt4 book ai didi

python - 用于打印的排序字典

转载 作者:行者123 更新时间:2023-11-28 20:45:41 25 4
gpt4 key购买 nike

我想打印一个排序的字典,其中包含很多键值对 (~2000)。每对由一个数字作为键和一个字符串作为值组成。这只是关于打印,我实际上不想对字典进行排序。

如果我使用 sorted() 方法,python 会对我的字典进行排序,但方式很尴尬:

{'0':'foo', '1':'bar', '10': 'foofoo', '100': 'foobar', '1000': 'barbar', 
'1001': 'barfoo', '1002': 'raboof', ...}

但我想按这样的“常规”方式对其进行排序:

{'0':'foo', '1':'bar', '2': 'foofoo', '3': 'foobar', '4': 'barbar', 
'5': 'barfoo', ... , '1001': 'raboof'}

我可以强制该方法按我想要的方式运行,还是有其他更好的解决方案?

最佳答案

你的键是代表整数的字符串;如果您想要数字排序,请使用 int() 将键转换为整数:

sorted(yourdict, key=int)

给你一个按数字排序的键列表

sorted(yourdict.items(), key=lambda i: int(i[0]))

为您提供按键的数值排序的项目。

但是,如果您有从 0 开始的顺序键,则应该改用列表对象。索引引用比字典查找更快,因为不需要散列步骤。

即使您的键不是从 0 开始但仍然是连续的,对于一个小的开始索引,您只需用 None 值填充列表:

[None, 'foo', 'bar', 'foofoo', ...]

并从 1 开始索引。

关于python - 用于打印的排序字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22710030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com