繁体   English   中英

Python中字典理解中的键、值分配

[英]Assigning Key, Value in a Dictionary Comprehension in Python

我很难理解字典理解。

这个答案指出正确的语法是{key: value for (key, value) in iterable}

这是否意味着我不能使用下面的代码并创建一个更优雅的 oneliner 来从os.listdir创建字典?

import os

d = {}
for item in os.listdir(path):
    d[item] = os.listdir(path + "/" + item + "/urls")

我正在尝试从路径创建字典键,然后从 static 子文件夹/urls创建值。

{'foo': ['bar','bah'], 'foo1': ['bar1', 'bah1']}

我尝试了a = {v: k for k, v in enumerate(os.listdir(path))}变体,但根据我的评论,我不清楚它是否可以通过 Dictionary Comprehension 实现。

尝试:

d = {item: os.listdir(path + "/" + item + "/urls") for item in os.listdir(path)}

解释:

对于os.listdir(path)返回的每个元素(在我的例子中是命名item ),创建以下key: value对,其中:

  1. 关键物品
  2. value - 表达式os.listdir(path + "/" + item + "/urls")

当您定义path时,这应该可以工作:

d = {item: os.listdir(path + "/" + item + "/urls") for item in os.listdir(path)}

唯一的问题是在计算的路径不存在时检查FileNotFoundError异常。 因此,如果您冒着产生无效路径的风险,我建议您使用原始语法 go。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM