Python函数篇:dict函数和列表生成式
1.dict函数
语法:
dict()
dict(**kwarg)
dict(mapping, **kwarg)
dict(iterable, **kwarg)
第一种:dict()构造一个空字典
h=dict()
print(h) #{}
第二种:dict(**kwargs) dict函数需要传入关键字参数。
a=dict(one='',two='')
print(a) #{'one': '1', 'two': '2'}
第三种:dict(mapping,**kwarg)
b=set([(1,2)])
print(b) #{(1, 2)}
b=dict(b)
print(b) #{1: 2} c = [(1,'c'), ['c', 1]]
c=dict(c)
print(c) #{1: 'c', 'c': 1} d = ('ac', set('de'))
print(d)#('ac', {'d', 'e'})
d=dict(d)
print(d) #{'a': 'c', 'd': 'e'}
第四种:高大上了
e = dict([(['one', 'two'][i - 1], i) for i in (1, 2)])
print(e) #{'one': 1, 'two': 2} f = dict({'one': 1, 'two': 2}.items())
print(f) #{'one': 1, 'two': 2} g = dict(zip(('one', 'two'), (1, 2)))
print(g) #{'one': 1, 'two': 2}
2.列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建列表的生成式。
[exp for iter_var in iterable]
首先迭代 iterable 里所有内容, 每一次迭代, 都把 iterable 里相应内容放到 iter_var 中, 再在表达式 exp 中应用该 iter_var 的内容, 最后用表达式的计算值生成一个新的列表.
a=range(1,10)
>>> [a*a for a in range(1,10)]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
可以使用两层循环,可以生成全排列:
>>> L = [(x, y) for x in range(2) for y in range(3)]
>>> L
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
可以使用判断语句
>>> c = [x for x in range(10) if x > 5]
>>> c
[6, 7, 8, 9]
列表生成式也可以使用两个变量来生成list:
>>> d = {'a': 'A', 'b': 'B', 'c': 'C' }
>>> [k + '=' + v for k, v in d.items()]
['a=A', 'b=B', 'c=C']
把一个list中所有的字符串变成小写:
>>> L = ['I', 'Love', 'Greg']
>>> [s.lower() for s in L]
['i', 'love', 'greg']
虽然列表生成式好用,但需要只是执行一个循环的时候尽量使用循环而不是列表解析, 这样更符合python提倡的直观性
当有内建的操作或者类型能够以更直接的方式实现的, 不要使用列表解析. 例如复制一个列表时, 使用 L1=list(L) 即可, 不必使用: L1=[x for x in L]
如果需要对每个元素都调用并且返回结果时, 应使用 L1=map(f,L), 而不是 L1=[f(x) for x in L].
Python函数篇:dict函数和列表生成式的更多相关文章
- Python入门篇-匿名函数
Python入门篇-匿名函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.匿名函数概述 1>.什么是匿名函数 匿名,即没有名字 匿名函数,即没有名字的函数 2>. ...
- Python入门篇-生成器函数
Python入门篇-生成器函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.生成器概述 1>.生成器generator 生成器指的是生成器对象,可以由生成器表达式得到, ...
- python中的 dict() 函数
Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. dict() 函数函数语法: dict(key/value) 参数说明: key/v ...
- python基础篇_003_函数
python中的函数 1.函数的目的 .避免代码冗余 .增强可读性 2.函数的定义与调用 # 定义函数 使用关键字def """ 1.定义函数: def 函数名(): 函 ...
- Python基础篇(初始函数)
Python初始函数: 一.什么是函数 1.我们到目前为止, 已经可以完成一些软件的基础功能了. 那么我们来完成这样一个功 能: 约x: print("拿出手机") print(& ...
- CSIC_716_20191114【生成器、匿名函数、内置函数、三元表达式、列表生成式、生成器表达式】
生成器: 函数与yield连用,凡是函数中有yield的,调用该函数的时候均不会立即执行,而是会返回一个生成器. 生成器本质上是一个迭代器,需要通过 [生成器.__next__()]或者[nex ...
- python 基础篇 匿名函数
匿名函数基础 首先,什么是匿名函数呢?以下是匿名函数的格式: lambda argument1, argument2,... argumentN : expression 我们可以看到,匿名函数的关键 ...
- python 基础篇 自定义函数
多态 我们可以看到,Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,同样的一个函数(比如这边的相加函数 my_sum()),可以同时应用在整型.列表.字符串等等的操作中. 在编 ...
- python 基础篇 11 函数进阶----装饰器
11. 前⽅⾼能-装饰器初识本节主要内容:1. 函数名的运⽤, 第⼀类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ⼆. 闭包什么是 ...
- Python入门基础之迭代和列表生成式
什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过 for ...
随机推荐
- 系统学习java高并发系列二
转载请注明原创出处,谢谢! 什么是线程? 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程 ...
- 从C#到TypeScript - 高级类型
C# vs TypeScript - 高级类型 上一篇讲了基础类型,基本上用基础类型足够开发了,不过如果要更高效的开发,还是要看下高级类型,这篇和C#共同点并不多,只是延用这个主题. 联合类型 可以从 ...
- 【京东详情页】——原生js爬坑之放大镜
一.引言 在商城的详情页中,放大镜的功能是很常见的.这里京东详情页就要做一个仿放大镜的效果,预览如下: 二.实现原理 实际上,放大镜的实现是单纯用几个div,鼠标移入其中一个小图div,触发事件显示另 ...
- Angularjs –– Expressions(表达式)
点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ Angular的表达式 Angular的表达式和JavaScript代码很像,不过通常A ...
- thinkphp的select和find的区别
hinkphp是比较好的php开发框架,能比较快速的开发MVC架构的管理系统,我们需要用到 select()和find()方法,两个方法都能返回数据集数组,但有什么不同呢?先看一下我的代码对比:$te ...
- Python 编程基础之高阶函数篇(一)
高阶函数:能接受函数作为参数的函数. 如: f=abs def add(x,y,f): return f(x)+f(y) 如果我们用:add(-5,9,f)来调用该高阶函数,则返回结果为:14 ...
- mysql用户权限配置
创建管理员: mysqladmin -u root password 123456 登录 mysql -u root -p 建库及授权 > create database bdp charact ...
- Java历程-初学篇 Day03扫描仪与类型转换
一,扫描仪 步骤1,使用扫描仪方法 步骤2,导个包 步骤三,使用 注意事项:严格区分大小写 二,类型转换 1,自动类型转换 当将一个数值范围小的类型赋给一个数值范围大的数值型变量,java在编译过程中 ...
- Linux-jdk1.7-tomcat7 简易安装
一.jdk 安装 安装包:jdk-7u80-linux-x64.tar.gz 2 解压 [root@localhost package]# tar -zxvf jdk-7u80-linux-x64.t ...
- window开启remote desktop服务
确定自己的PC支持远程桌面 1 先确定被遥控的电脑的系统必须是Professional或Enterprise以上版本,家庭版不支持远程桌面.以Win8.1(7和8同理)为例,依次打开控制面板→系统 ...