检查字典是否包含值并返回相关值

4 投票
5 回答
7060 浏览
提问于 2025-04-17 09:21

我有一个字典的列表,每个字典里包含文件名和修改日期,格式如下:

fileList = [{"fileName": "file1.txt", "fileMod": "0000048723"}, 
            {"fileName": "file2.txt", "fileMod": "0000098573"}]

我需要查询一下某个 fileName 是否在这个字典里,如果存在的话,就返回这个条目的文件修改日期。

5 个回答

3

为了说明一下:你的数据结构其实是一个字典的列表,而不是一个字典。所以你不能直接在这个列表里查找项 "fileName"。你可以这样做:

for filedict in fileList:
    if filedict.get("fileName") == "myrequestedfile.typ":
        # to somthing
        pass
3

你可以用lambdafilter来一起使用。

>>> fileList = [{"fileName": "filename1.typ", "fileMod": "0000000001"}, {"fileName": "filename2.typ", "fileMod": "0000000002"}]
>>> filter(lambda x:x["fileName"]=="filename2.typ",fileList)[0]['fileMod']
'0000000002'

你也可以用列表推导式来做到这一点。

[x['fileMod'] for x in fileList if x["fileName"]=="filename2.typ"][0]

或者只用简单的循环也可以。

for x in fileList:
    if x["fileName"]=="filename2.typ":
        print x["fileMod"]
6

使用列表推导式:

fileMod = [item['fileMod'] for item in fileList if item['fileName'] == filename]

撰写回答