Skip to main content
 首页 » 编程设计

python之范围内的字典理解

2024年10月01日5lyhabc

我正在尝试创建一个字典,它从一个字典中获取键作为键,并从 range() 中获取数字作为值。例如,这是我尝试过的;

files = {'/var/www/test.jgp': 40kb, '/var/www/banner.jgp':40kb} 
files_num = dict((key, value) for key in files.keys() for value in range(1, len(files) + 1)) 

这没用。我知道如果我创建一个 files.keys() 列表和一个 range(1, len(files) + 1) 列表,然后使用类似 zip 的东西,就可以做到这一点。但是想知道是否有使用字典理解的更优雅的解决方案。

我正在寻找这样的输出:

{'/var/www/test.jgp': 1, '/var/www/banner.jgp': 2} 

任何关于此的建议(假设可以理解字典)将不胜感激。

请您参考如下方法:

您可以使用 enumerate()有一个起始索引:

>>> {f: n for n, f in enumerate(files, 1)} 
{'/var/www/test.jgp': 1, '/var/www/banner.jgp': 2} 

请记住dict objects are inherently unordered .如果您只想按某种未指定的顺序对键进行编号,那显然没问题。但是,如果您期望某些特定的顺序,您可能需要重新考虑(或 collections.OrderedDict)。