python字典构造函数dict(mapping)解析
Python字典的构造函数有三个,dict()、dict(**args)、dict(mapping),当中第一个、第二个构造函数比較好理解也比較easy使用,
而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}
python字典构造函数dict(mapping)解析的更多相关文章
- python字典(dict)
1.字典dict定义 初始化 key-value键值对的数据的集合,可变.无序.key不重复(哈希.唯一) 1> d = dict() 或者 d = {} # -*- coding:utf-8 ...
- Python 字典初始化dict()和{}
参考:https://doughellmann.com/blog/2012/11/12/the-performance-impact-of-using-dict-instead-of-in-cpyth ...
- python字典中dict.get()和dict.setdefault()的异同点
相同点: 两者是参数相同:dict.get(key, default=None), dict.setdefault(key, default=None) 如果指定的键不存在时,两者都返回默认值,默认是 ...
- Python 字典(dict)操作(update)
1. get 注意以下两种形式的细微差别,差别在返回值的类型上: d.get(value, '') d.get(value, ['']) >> d = {} >> d.get( ...
- python 字典(dict)按键和值排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序 ...
- Python字典增删操作技巧简述
Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技 ...
- Python字典(dict)使用技巧
字典dict是Python中使用频率非常高的数据结构,关于它的使用,也有许多的小技巧,掌握这些小技巧会让你高效地的使用dict,也会让你的代码更简洁. 1.默认值 假设name_for_userid存 ...
- Python——字典dict()详解
一.字典 字典是Python提供的一种数据类型,用于存放有映射关系的数据,字典相当于两组数据,其中一组是key,是关键数据(程序对字典的操作都是基于key),另一组数据是value,可以通过key来进 ...
- Python入门篇-封装与解构和高级数据类型集合(set)和字典(dict)
Python入门篇-封装与解构和高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.封装和结构 #!/usr/bin/env pytho ...
随机推荐
- 去掉word中向下的箭头^l----->^p
去掉word中向下的箭头 在网页上复制文章到word中,会发现有很多向下的箭头,这些 符号叫做软回车符.如何去掉这些向下的箭头呢.步骤如下: 方法/步骤 按Ctrl+H,弹出全局替换窗口,输入查找内容 ...
- Java集合类汇总记录-- apache.commons4(TreeList)
通常.Tree是Tree,List是List,两者不太可能混在一起.但apache-commons库却用tree实现了实现了List的接口,也就是TreeList类.与标准的LinkedList相比. ...
- 内网port映射具体解释(花生壳)
关于怎样建立服务器的解答. 一.花生壳的作用 首先,我们先来了解一下花生壳的究竟有什么作用.由于ADSL每次拨号上网所获得的IP地址每次都是不同的,花生壳起到的作用就是方便用户訪问我们的server( ...
- 13-7-5 android Tabhost功能实现
开始使用了一个Activity做界面切换,采用visible.gone写法,感觉太麻烦了. layoutHousehold.setVisibility(View.GONE); layoutCamera ...
- tarjan算法(割点/割边/点连通分量/边连通分量/强连通分量)
tarjan算法是在dfs生成一颗dfs树的时候按照访问顺序的先后,为每个结点分配一个时间戳,然后再用low[u]表示结点能访问到的最小时间戳 以上的各种应用都是在此拓展而来的. 割点:如果一个图去掉 ...
- Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程
原文:Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程 Red Gate系列之八 SQL Connect 1.1.1.19 ...
- uva 11396Claw Decomposotion(二分图判定)
题目大意:给出一个简单无向图,每一个点的度为3.推断是否能将此图分解成若干爪的形式.使得每条边都仅仅出如今唯一的爪中. (点能够多次出如今爪中) 这道题实质上就是问这个图是否为二分图,dfs判定 ...
- HDU 2063 过山车 二分图题解
一个男女搭配的关系图,看能够凑成多少对,基本和最原始的一个二分图谜题一样了,就是 一个岛上能够凑成多少对夫妻的问题. 所以是典型的二分图问题. 使用匈牙利算法,写成两个函数,就很清晰了. 本程序还带分 ...
- Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、检查操作
package com.examp.use_SQLite.dao; import java.util.ArrayList; import java.util.List; import android. ...
- Java Swing TextArea 滚动条和获得焦点
JTextArea text=new JTextArea(); text.setLineWrap(true);//设置自己主动换行,之后则不须要设置水平滚动栏 JScrollPane scroll=n ...