如何通过字典理解迭代字典来处理它.
>>> 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'}
不要把两种方式混在一起。
更换
{(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}
您可以按照@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'}
不要把两种方式混在一起。
表达方式:
{ value for bar in iterable }
是一套理解力。
为了进行dict理解,您必须为Python提供一组键值对,并用:
以下分隔:
{ key: value for bar in iterable }