广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python字典构造函数dict(map
  • 379
分享到

python字典构造函数dict(map

字典函数python 2023-01-31 08:01:12 379人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

python字典的构造函数有三个,dict()、dict(**args)、dict(mapping),其中第一个、第二个构造函数比较好理解也比较容易使用, 而dict(mapping)这个构造函数的使用比较难理解。 1 dict()构造函

python字典的构造函数有三个,dict()、dict(**args)、dict(mapping),其中第一个、第二个构造函数比较好理解也比较容易使用,

而dict(mapping)这个构造函数的使用比较难理解。

1 dict()构造函数可以返回一个空的字典

In [7]: d = dict()

In [8]: print d
{}

In [9]: 

2 dict(**arg)构造函数,传入参数用赋值表达式,可多个赋值表达式,用逗号间隔即可。

In [9]: d = dict(a = 12, b = 13, c = 15)

In [10]: print d
{'a': 12, 'c': 15, 'b': 13}

In [11]: 

3 dict(mapping)构造Python字典构造函数,怎么传入这个mapping参数呢?Python下的mapping到底是什么呢?

看下边这个例子。

def fmap(a, b): 
        return (a, b)
lik = range(1, 9) 
liv = list("abcdefgh")
print map(fmap, lik, liv) 

运行结果如下

[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f'), (7, 'g'), (8, 'h')]

       map函数的作用是:每次从可迭代对象(这里是列表lik和liv)取出一个元素值,经过fmap自定义函数的处理后作为新的(返回)列表的元素,故这个map函数的操作方式很像列表解析的概念。

       理解了map函数后,便可将返回值作为dict的传入参数了,从而得到一个字典。

def fmap(a, b):
        return (a, b)
lik = range(1, 11)
liv = list("abcdefghij")
lim = map(fmap, lik, liv)
d = dict(lim)
print d

      执行结果如下所示:

{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j'}


以上通过map函数实现的方式,Python提供了另一个函数zip,也可构造出一个mapping对象,代码如下所示:

In [77]: k = list("abcdefghij")
In [78]: print k
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
In [79]: v = range(11, 21)
In [80]: print v
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
In [81]: m = zip(k,v)
In [82]: print m
[('a', 11), ('b', 12), ('c', 13), ('d', 14), ('e', 15), ('f', 16), ('g', 17), ('h', 18), ('i', 19), ('j', 20)]
In [83]: d = dict(m)
In [84]: print d
{'a': 11, 'c': 13, 'b': 12, 'e': 15, 'd': 14, 'g': 17, 'f': 16, 'i': 19, 'h': 18, 'j': 20}


--结束END--

本文标题: python字典构造函数dict(map

本文链接: https://www.lsjlt.com/news/192405.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作