Skip to main content
 首页 » 编程设计

python之创建具有理解力的字典

2025年05月04日17del

我正在尝试创建通过特定条件的目录字典。重要的是每个目录都设置为一个值,并且每个键都从 1 开始编号。

我在这里写了一些东西,但我想知道是否有更好的方法来做到这一点?

dict(enumerate(sorted([x for x in os.listdir("T:\\") if certain_condition(x)]), start=1)) 

结果:

{1: 'folderA', 2: 'folderB', 3: 'folderC', 4: 'folderD', 5: 'folderE', 6: 'folderF'} 

非常感谢

请您参考如下方法:

只需使用列表即可:

[None] + sorted([x for x in os.listdir("T:\\") if certain_condition(x)] 

您可以通过索引访问每个值,从 1 开始。

如果你的键不仅仅是连续的整数和/或你需要从中删除项目而不改变索引,那么字典理解也可以工作:

{'A{}'.format(i + 1): v for i, v in enumerate(sorted(x for x in os.listdir("T:\\") if certain_condition(x)))} 

或者您可以使用 itertools.count() object为您提供柜台:

from itertools import count 
index = count(1) 
 
{'A{}'.format(next(index)): v for v in sorted(os.listdir("T:\\") if certain_condition(v)}