猿问

用Python创建具有列表理解功能的字典

用Python创建具有列表理解功能的字典

我喜欢Python列表理解语法。

它也能用来创建字典吗?例如,通过对键和值的对进行迭代:

mydict = {(k,v) for (k,v) in blah blah blah}  # doesn't work


森栏
浏览 495回答 3
3回答

眼眸繁星

从Python2.7和3开始,只需使用DECT理解语法:{key: value for (key, value) in iterable}在Python2.6和更早版本中,dict内置可以接收可迭代的键/值对,因此可以传递列表理解或生成器表达式。例如:dict((key, func(key)) for key in keys)但是,如果您已经具有可迭代的键和/或值,则根本不需要使用理解-这是最简单的,只需调用dict内置直接:# consumed from any iterable yielding pairs of keys/valsdict(pairs)# "zipped" from two separate iterables of keys/valsdict (zip(list_of_keys, list_of_values))

九州编程

实际上,如果迭代已经包含了某种映射,那么甚至不需要对迭代进行迭代,DECT构造函数为您做得很好:>>> ts = [(1, 2), (3, 4), (5, 6)]>>> dict(ts){1: 2, 3: 4, 5: 6}>>> gen = ((i, i+1) for i in range(1, 6, 2))>>> gen<generator object <genexpr> at 0xb7201c5c>>>> dict(gen){1: 2, 3: 4, 5: 6}
随时随地看视频慕课网APP

相关分类

Python
我要回答