检查字典是否包含值并返回相关值
我有一个字典的列表,每个字典里包含文件名和修改日期,格式如下:
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
>>> 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]