在Python中为字典中的键、值赋值

在Python中为字典中的键、值赋值,python,list,dictionary,dictionary-comprehension,Python,List,Dictionary,Dictionary Comprehension,我很难理解字典 说明正确的语法是{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") 我试图从路径创建字典键,然后从静态子文件夹/u

我很难理解字典

说明正确的语法是
{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")
我试图从路径创建字典键,然后从静态子文件夹
/url
创建值

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

我在enumerate(os.listdir(path))}中尝试了
a={v:k代表k,v的变体
,但根据我的评论,我不清楚是否可以通过字典理解来实现。

尝试:

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

对于由
os.listdir(path)
返回的每个元素(在我的例子中命名为
item
),将创建以下键:值对,其中:

  • 关键项目
  • value-表达式
    os.listdir(path+“/”+item+“/url”)
  • 尝试:

    说明:

    对于由
    os.listdir(path)
    返回的每个元素(在我的例子中命名为
    item
    ),将创建以下键:值对,其中:

  • 关键项目
  • value-表达式
    os.listdir(path+“/”+item+“/url”)

  • 当您定义了
    路径
    时,这应该可以工作:

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

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

    当您定义了
    path
    时,应该可以这样做:

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

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

    您是否有可能编辑答案,以解释我5岁的样子?我想知道在概念上我不理解解决方案的语法的地方。完成了,希望它现在对你有意义。你有没有可能编辑答案来解释,就像我5岁一样?我想知道在概念上我不理解解决方案的语法的地方。完成了,希望它现在对您有意义。