通过理解迭代字典并获得字典

 淡定_一辈子 发布于 2023-01-19 14:43

如何通过字典理解迭代字典来处理它.

>>> mime_types={
    '.xbm': 'image/x-xbitmap',
    '.dwg': 'image/vnd.dwg',
    '.fst': 'image/vnd.fst',
    '.tif': 'image/tiff',
    '.gif': 'image/gif',
    '.ras': 'image/x-cmu-raster',
    '.pic': 'image/x-pict',
    '.fh':  'image/x-freehand',
    '.djvu':'image/vnd.djvu',
    '.ppm': 'image/x-portable-pixmap',
    '.fh4': 'image/x-freehand',
    '.cgm': 'image/cgm',
    '.xwd': 'image/x-xwindowdump',
    '.g3':  'image/g3fax',
    '.png': 'image/png',
    '.npx': 'image/vnd.net-fpx',
    '.rlc': 'image/vnd.fujixerox.edmics-rlc',
    '.svgz':'image/svg+xml',
    '.mmr': 'image/vnd.fujixerox.edmics-mmr',
    '.psd': 'image/vnd.adobe.photoshop',
    '.oti': 'application/vnd.oasis.opendocument.image-template',
    '.tiff':'image/tiff',
    '.wbmp':'image/vnd.wap.wbmp'
}

>>> {(key,val) for key, val in mime_types.items() if "image/tiff" == val}

这是返回结果,如下所示:

set([('.tiff', 'image/tiff'), ('.tif', 'image/tiff')])

但我期待着

('.tif', 'image/tiff')

如何修改该结果以获取如下字典:

{'.tif': 'image/tiff'}

Anubhav C.. 13

更换

{(key,val) for key, val in mime_types.items() if "image/tiff" == val}

{key: val for key, val in mime_types.items() if "image/tiff" == val}


zhangxaochen.. 5

您可以按照@Anubhav Chattoraj的建议进行字典理解。

或者将generator expr作为参数传递给function dict

In [165]: dict((k, mimes[k]) for k in mimes if mimes[k] == "image/tiff")
Out[165]: {'.tif': 'image/tiff', '.tiff': 'image/tiff'}

不要把两种方式混在一起。

3 个回答
  • 更换

    {(key,val) for key, val in mime_types.items() if "image/tiff" == val}
    

    {key: val for key, val in mime_types.items() if "image/tiff" == val}
    

    2023-01-19 14:46 回答
  • 您可以按照@Anubhav Chattoraj的建议进行字典理解。

    或者将generator expr作为参数传递给function dict

    In [165]: dict((k, mimes[k]) for k in mimes if mimes[k] == "image/tiff")
    Out[165]: {'.tif': 'image/tiff', '.tiff': 'image/tiff'}
    

    不要把两种方式混在一起。

    2023-01-19 14:46 回答
  • 表达方式:

    { value for bar in iterable }
    

    一套理解力

    为了进行dict理解,您必须为Python提供一组键值对,并用:以下分隔:

    { key: value for bar in iterable }
    

    2023-01-19 14:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有