字典推导式

优质
小牛编辑
126浏览
2023-12-01
rankvoteurl
57386107665url

字典推导式

我喜欢列表推导式的语法.

它能不能用来创建字典?这样:

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

在Python2.6或更早的版本,字典生成器可以接受迭代的键/值对:

d = dict((key, value) for (key, value) in iterable)

从Python2.7或者3以后,你可以直接用字典推导式语法:

d = {key: value for (key, value) in iterable}

当然,你可以用任何方式的迭代器(元组,列表,生成器..),只要可迭代对象的元素中有两个值.

d = {value: foo(value) for value in sequence if bar(value)}

def key_value_gen(k):
   yield chr(k+65)
   yield chr((k+13)%26+65)
d = dict(map(key_value_gen, range(26)))