Python高级特性
来源:互联网 发布:linux kill -9怎么用 编辑:程序博客网 时间:2024/06/03 15:58
最近开始学习Python,利用空闲时间记录部分笔记,方便日后回顾,同时,希望能帮助到正在学习中的同胞,如果文章内容有出入,欢迎随时指正。从本文开始,所有示例代码以Spyder环境为例。
切片
类似其它编程语言中的subString函数,针对获取list或tuple的指定索引范围的操作,Python提供了切片操作符,示例如下L=['Alice','Bob','Ten','Jack']T=(0,1,2,3)print (L[0:3])print(L[-3:-1])print(T[:2])
运行结果:
['Alice', 'Bob', 'Ten']['Bob', 'Ten'](0, 1)
L[0:3]表示,从索引0开始取,直到索引3为止,但不包含索引3。如果第一个索引是0,可以省略不写,如L[:3]。切片也支持倒数,倒数时,第一个元素的索引是-1。
迭代
在Python中,通过for…in循环来遍历list或其他对象,这种遍历称为迭代。D={'a':1,'b':2,'c':3}for key in D: print (key)
运行结果:
acb
Python可对list、dict等进行迭代,也可以对字符串进行迭代,但依然有部分对象不可以进行迭代,如果不确定时,可以先判断是否支持迭代。
from collections import Iterableprint(isinstance('abc',Iterable))print(isinstance([1,2,3],Iterable))print(isinstance(123,Iterable))
运行结果:
TrueTrueFalse
列表生成式
Python内置了强大而又简单的方法,即可以创建list生成式。示例如下:L = list(range(1,11))print(L)P = [x*x for x in range(1,11)]print(P)Q = [x*x for x in range(1,11) if x%2== 0]print(Q)
运行结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 4, 9, 16, 25, 36, 49, 64, 81, 100][4, 16, 36, 64, 100]
生成器
为解决list生成过大所造成的内存浪费,Python提供了一种边循环边计算的机制,称为生成器:Generator。这样就不必创建完整的list,从而节省了大量的空间。G = (x*x for x in range(10))print (G)
运行结果:
<generator object <genexpr> at 0x0000023783AE9B48>
将列表生成式的[]改成(),就可以创建一个Generator。更复杂的Generator将在后期做进一步补充。
迭代器
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。前面已经写了如何判断是否是可迭代对象,同样,可以使用isinstance()判断一个对象是否是Iterator对象。from collections import Iteratorprint(isinstance((x for x in range(10)),Iterator))print(isinstance([],Iterator))print(isinstance({},Iterator))
运行结果:
TrueFalseFalse
生成器都是Iterator对象,但list、dict、字符串等虽然是Iterable,却不是Iterator。
- Python高级特性
- Python的高级特性
- Python高级特性
- Python高级特性
- python高级特性
- Python高级特性:生成器
- python 高级特性
- Python学习----高级特性
- Python 高级特性 : 切片
- Python 高级特性 : 生成器
- python 高级特性
- Python高级特性
- Python-Day3(高级特性)
- python的高级特性
- python高级特性 - 切片
- Python高级特性
- python 2.7 : 高级特性
- python 高级特性
- android中setClickable,setEnabled,setFocusable的含义及区别
- VMware 安装linux系统
- CreateProcess TerminateProcess 创建与终止进程 demo
- gradle基本使用
- 阻塞(block),非阻塞(non-block),异步(asynchronous),同步(synchronous)
- Python高级特性
- Memcache源码阅读(1)---看源码的心得
- Codeforces 743D 树形dp
- Iometer 详细了解见官网
- Leetcode Submission Details
- 【leetcode】66. Plus One【java】
- android的四种启动模式
- onPreviewFrame
- Memcache源码阅读(2)---命令行使用