python再复习(4)高级特性、函数式编程以及用法小结
来源:互联网 发布:c语言多重循环break 编辑:程序博客网 时间:2024/05/29 17:36
环境:win7 pycharmCE_2017.2 python3.6.2
第四篇呢,把高级特性回顾一下,顺便把常用的对字符串、列表的用法小结一下,这篇长期更新这个用法小结。
7.高级特性
判断类型
#判断是否可迭代>>> from collections import Iterable>>> isinstance('abc', Iterable)True#判断是否是字符串>>> x = 'abc'>>> y = 123>>> isinstance(x, str)True>>> isinstance(y, str)False
列表的下标循环
>>> for i, value in enumerate(['A', 'B', 'C']):... print(i, value)...0 A1 B2 C
列表生成式
#带条件的>>> temp=[x for x in range(0,500) if x%2==0 and x%7==0]>>> temp[0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168, 182, \196, 210, 224, 238, 252, 266, 280, 294, 308, 322, 336, 350, \364, 378, 392, 406, 420, 434, 448, 462, 476, 490]>>>#双层for>>> [a+b for a in['hello','bye'] for b in ['john','tom','lily']]['hellojohn', 'hellotom', 'hellolily', 'byejohn', 'byetom', 'byelily']>>>#字典的列表生成>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }>>> [k + '=' + v for k, v in d.items()]['x=A', 'y=B', 'z=C']>>>
生成器:
在Python中,这种一边循环一边计算的机制,称为生成器:generator。
方法1:将列表生成式的[]改成()
方法2:函数中带有yield关键字
例如:
#杨辉三角def triangles(): L = [1] while True: yield L L.append(0) L = [L[a] + L[a - 1] for a in range(len(L))]
map/reduce:
>>> def tempK(x):... return x*x...>>> tempP=[1,2,3,5,8]>>> tempL=list(map(tempK,tempP))>>> tempL[1, 4, 9, 25, 64]>>> from functools import reduce>>> def tempK(x,y):... return x+y...>>> reduce(tempK,tempP)19>>>
filter暂时没什么说的:
def is_palindrome(n): if str(n) == str(n)[::-1]: return int(n)output = filter(is_palindrome, range(1, 200))print(list(output))#结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191]
sorted()暂时没什么说,是一个高阶函数。
7.1用法小结
首先,记住区间是前闭后开的。
★列表、元组取数
用索引。
用切片,怎么取都可以。
#新建一个列表>>> a=list(range(0,20))>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]#取前5个数>>> b=a[0:5]>>> b[0, 1, 2, 3, 4]#取后5个数>>> b=a[-5:]>>> b[15, 16, 17, 18, 19]#取中间,第i到i+n个数>>> b=a[4:9]>>> b[4, 5, 6, 7, 8]#步长,跳着取,隔n步取数>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]>>> b=a[::2]>>> b[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]>>>#第5个到第10个隔3个取一个>>> b=a[5:10:3]>>> b[5, 8]#列表倒序,倒过来输出:>>> b=a[::-1]>>> b[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]>>>
★列表、元组取数
阅读全文
0 0
- python再复习(4)高级特性、函数式编程以及用法小结
- Python笔记(二)——高级特性|函数式编程
- Python编程_Lesson010_函数高级特性
- Python学习笔记(七):高级特性、函数式编程、模板(快速入门篇)
- python 函数高级特性
- python 函数高级特性
- Python高级特性: 函数编程 lambda, filter,map,reduce
- Python编程之高级特性
- Python函数的高级特性
- python高级特性(4):生成器
- JavaSE复习之十三 高级特性:网络编程
- Python 函数的高级用法
- 读廖雪峰的 Python 教程小结--------Python高级特性
- python -- 函数以及函数式编程
- Python高级特性:函数参数传递研究
- python高级特性与高阶函数
- python基础3之函数高级特性
- python集合与函数的高级特性
- 设计模式概述-学习笔记
- ios里面 Localizable.strings文件一点小知识(转载)
- 【转载】Java包(package)的命名规范,java中package命名规则
- 对一个deb包的解压、修改、重新打包全过程方法
- C++ 输入输出流和文件输入输出流
- python再复习(4)高级特性、函数式编程以及用法小结
- UVA
- Centos7 管理防火墙的端口
- luinx session文件,laravel 清空session
- 一般报java.lang.NullPointerException的原因有以下几种
- 利用WHID为隔离主机建立隐秘通道
- TextView 代码实现drawableRight
- apache common logging和log4j区别 2016-11-01 21:01 711人阅读 评论(0) 收藏 举报 Apache common logging是一种log的框架接口,
- 使用Maven搭建SpringMVC