我正在尝试创建一个字典,它从一个字典中获取键作为键,并从 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
)。