[英]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对,其中:
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.