在 Python 中的字典理解中分配键、值
Assigning Key, Value in a Dictionary Comprehension in Python
我很难理解词典。
This answer 表示正确的语法是 {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")
我正在尝试从路径创建字典键,然后从静态子文件夹 /urls
.
创建值
{'foo': ['bar','bah'], 'foo1': ['bar1', 'bah1']}
我试过 a = {v: k for k, v in enumerate(os.listdir(path))}
的变体,但根据我的评论我不清楚是否可以通过词典理解实现。
尝试:
d = {item: os.listdir(path + "/" + item + "/urls") for item in os.listdir(path)}
解释:
对于 os.listdir(path)
返回的每个元素(在我的例子中命名为 item
),创建以下 key: value 对,其中:
- 关键 - 项目
- value - 表达式
os.listdir(path + "/" + item + "/urls")
这应该在您定义 path
:
时起作用
d = {item: os.listdir(path + "/" + item + "/urls") for item in os.listdir(path)}
唯一的问题是在计算路径不存在时检查 FileNotFoundError
异常。因此,如果您冒着生成无效路径的风险,我建议您使用原始语法。
我很难理解词典。
This answer 表示正确的语法是 {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")
我正在尝试从路径创建字典键,然后从静态子文件夹 /urls
.
{'foo': ['bar','bah'], 'foo1': ['bar1', 'bah1']}
我试过 a = {v: k for k, v in enumerate(os.listdir(path))}
的变体,但根据我的评论我不清楚是否可以通过词典理解实现。
尝试:
d = {item: os.listdir(path + "/" + item + "/urls") for item in os.listdir(path)}
解释:
对于 os.listdir(path)
返回的每个元素(在我的例子中命名为 item
),创建以下 key: value 对,其中:
- 关键 - 项目
- value - 表达式
os.listdir(path + "/" + item + "/urls")
这应该在您定义 path
:
d = {item: os.listdir(path + "/" + item + "/urls") for item in os.listdir(path)}
唯一的问题是在计算路径不存在时检查 FileNotFoundError
异常。因此,如果您冒着生成无效路径的风险,我建议您使用原始语法。