开发者社区> 问答> 正文

如何在不使用索引的情况下访问列表中的字典对象?

我正在尝试为每个用户创建一个文件夹和文件的目录,我似乎无法访问所有用户文件列表中的文件夹的字典,但只使用文件夹名称,而不是索引。

我可以遍历列表并检查该元素是否是一个字典,其中包含我正在尝试访问的文件夹名称,但我觉得这可能是一种更简单的方法。

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"

展开
收起
一码平川MACHEL 2019-01-22 10:41:04 1929 0
1 条回答
写回答
取消 提交回答
  • 正如您所指出的那样,问题在于这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": {}

    }
    或类似的规定。

    2019-07-17 23:26:09
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载