python用列表创建字典_用Python中的列表理解创建一个字典

我喜欢Python list comprehension语法。

它也可以用来创建字典吗?例如,通过迭代键和值对:

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

在Python 2.6和更早版本中,字典构造函数可以接收一个键/值对的迭代:

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

从Python 2.7和3开始,你可以使用[ dict理解语法

a>直接:

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)))

在Python 3 / Python 2.7+中,dict comprehensions如下所示:

d = {k:v for k, v in iterable}

对于Python 2.6及更早版本,请参阅fortran的答案。

未经作者同意,本文严禁转载,违者必究!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值