1.切片功能:类似于java中的split方法。对list或者triple中几个值进行取出的过程。

L = ['a','b','c','d']   L[0:3] = ['a','b','c']   #下标从0开始,取到第n-1个元素  L[-2:] =['c','d'] #倒序取值

2.迭代(循环)功能:python中的可遍历对象只要是可迭代对象,例如list,triple,dict,字符串

dict默认迭代的是key值,也可以循环value值。for value  in d.values()  同时迭代  for k,v in d.items()

判断是否为可迭代对象:

from collections import Iterable

isinstance('abc',Iterable)  #字符串是否可迭代    True

isinstance([1,2,3],Iterable)  #list是否可迭代    True

isinstance(123,Iterable)  #整数是否可迭代    True

带下标输出:

for i, value in enumerate(['A','B','C'])

print(i,value)

0 A  1 B  2 C

3.列表生成式

生成简单的list可以用 list(range(1,11))  通用表达式为: [x for x in range(1,11)]

# 添加if判断: [x * x for x in range(1,11) if x % 2 ==0]

#两层循环:[m+n for m in 'abc' for n in 'xyz']

练习:判断list中元素是否为字符串,

L1 = ['Hello','World',18,'Apple',None]

L2 = [x.lower() for x in L1 if isinstance(x,str)]

print(L2)

4.生成器

通过列表生成式创建时,由于内存大小的限制,列表的容量是有限的。因此采用一边循环,一边计算的机制,也就是生成器(generator)

#创建一个生成器,将列表生成式中的[]改成()即可

L = [x * x for x in range(10)]

g = (x * x for x in range(10))

可以通过next()函数获得下一个返回值(不实用,一般通过for循环获取)

#斐波拉契数列函数

def fib(max):

n,a,b = 0,0,1

while n < max:

print(b)

a,b = b,a+b    # t = (b,a+b)  t为tuple  a = t[0]  b = t[1]

n = n+1

return 'done'

#斐波拉契数列生成器

def fib(max):

n,a,b = 0,0,1

while n < max:

yield  b

a,b = b,a+b    # t = (b,a+b)  t为tuple  a = t[0]  b = t[1]

n = n+1

return 'done'

函数和生成器的执行流程不同,函数是顺序执行,遇到return语句或最后一行语句就返回。而生成器则是在每次调用next()时执行,遇到yield语句返回。再次执行时从上次返回的yield语句继续执行

5.迭代器

可用于for循环的对象称为可迭代对象  (有穷元素)

可以被next()函数调用并不断返回下一个值的对象称为迭代器 (Iterator)  (无穷元素)

可迭代对象不是迭代器,但是可以通过iter()函数来进行转换

(可迭代对象就好比我们去饭店点餐,我们点的总是有限的。而迭代器就如同吃自助餐,我们手里只有一个盘子,每次也只能取一个食物。但食物的供应量相对来讲是无限的。同样的食物,从饭店拿到自助店就创造出了迭代器)

python高级篇的更多相关文章

  1. 第五篇:python高级之面向对象高级

    python高级之面向对象高级   python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两 ...

  2. Python入门篇-封装与解构和高级数据类型集合(set)和字典(dict)

    Python入门篇-封装与解构和高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.封装和结构 #!/usr/bin/env pytho ...

  3. 第九篇:python高级之操作数据库

    python高级之操作数据库   python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及 ...

  4. 第八篇:python高级之多进程

    python高级之多进程   python高级之多进程 本节内容 多进程概念 Process类 进程间通讯 进程同步 进程池 1.多进程概念 multiprocessing is a package ...

  5. 第七篇: python高级之多线程

    21 interest=0.05 22 count=amount+amount*interest 23 24 self.withdraw(count) 25 26 27 def transfer(_f ...

  6. 第六篇:python高级之网络编程

    python高级之网络编程   python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及 ...

  7. 第四篇:python 高级之面向对象初级

    python 高级之面向对象初级   python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 ...

  8. 第三篇:python高级之生成器&迭代器

    python高级之生成器&迭代器   python高级之生成器&迭代器 本机内容 概念梳理 容器 可迭代对象 迭代器 for循环内部实现 生成器 1.概念梳理 容器(container ...

  9. 第一篇:python高级之函数

    python高级之函数   python高级之函数 本节内容 函数的介绍 函数的创建 函数参数及返回值 LEGB作用域 特殊函数 函数式编程 1.函数的介绍 为什么要有函数?因为在平时写代码时,如果没 ...

随机推荐

  1. hdu 6052 To my boyfriend

    题目 OvO click here http://acm.hdu.edu.cn/showproblem.php?pid=6052 (2017 Multi-University Training Con ...

  2. php文件夹上传源码

    1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...

  3. Linux安装—IP设置

    IP设置 务必不要把Linux的IP设置为和我们的真实机位于同一网段(这可能会跟其他机器造成冲突) 具体操作是:在安装虚拟机时Network Type设置选择:Use Host-Only networ ...

  4. poj 3069 贪心+区间问题

    Saruman's Army Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5989   Accepted: 3056 De ...

  5. noi.ac #546 分组

    题目链接:戳我 题目描述 现在有n个字符串,你需要从中选出一些字符串,使得选出的字符串能被分组,满足每组大小为2,且可以从每组选出该组的两个字符串的一个非空公共后缀,使得每组选出的串互不相同. 输入格 ...

  6. 扩展性很强的python实现方式

    一:先上目录结构 二:各个文件的代码 # -*- coding: utf-8 -*- # @Author : Felix Wang # @time : 2018/7/4 16:42 from util ...

  7. BZOJ 5267 特工 (类FWT)

    题意 题解 从大到小枚举\(l\), 把一个序列从\(2^{l+1}\)分成两个独立的\(2^l\),去除两半的影响. 设去除前的序列为\(b\), 去除后序列为\(b'\) 则有\(b_{2^{l+ ...

  8. Vue_(基础)Vue中的指令

    Vue.js中文文档 传送门 Vue的指令:其实就是单个JavaScript表达式,一般来说是带有v-前缀   Vue指令: v-model:数据双向绑定: v-text:以纯文本方式显示数据: v- ...

  9. 突破大文件上传 和内网ip的端口转发

    php上传大于2M文件的解决方法 2016年12月11日 :: katelyn9 阅读数 php上传大于2M文件的解决方法 如上传一个文件大于2m往往是上传不成功的解决方法: php.ini里查找 查 ...

  10. java jsp基础介绍

    1         Jsp基础 1.1           Jsp介绍 JSP(全称Java Server Pages)是一种web动态网页开发技术,通过标签和指令完成用户界面开发和交互操作.它使用J ...