我正在尝试为每个用户创建一个文件夹和文件的目录,我似乎无法访问所有用户文件列表中的文件夹的字典,但只使用文件夹名称,而不是索引。
我可以遍历列表并检查该元素是否是一个字典,其中包含我正在尝试访问的文件夹名称,但我觉得这可能是一种更简单的方法。
userDir = {"User1": [{"folder1": [file1, file2]}, file3], "User2": []}
我在这里访问字典键“folder1”的最佳方法是什么?
for obj in userDir["User1"]:
if type(obj) == dict:
if "folder1" in obj.keys():
print(obj["folder1"]) # Or do something else with "folder1"
正如您所指出的那样,问题在于这userDir["User1"]是一个列表。没有办法在列表中找到一个东西,没有遍历该列表并实际查看每个东西(除了使用索引ofc)。
Python确实提供了一些搜索列表的好方法,例如列表推导:
user1 = [x for x in userDir["User1"] if isinstance(x, dict) and "folder1" in x.keys()]
然而,真正的答案是数据格式不适合您尝试做的事情。让你的userDir外观更像是更清洁:
userDir = {
"User1": {
"folder1": [file1, file2, file3]
},
"User2": {}
}
或类似的规定。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。