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. 题解 【NOIP2016】组合数问题

    [NOIP2016]组合数问题 Description Input 第一行有两个整数t, k,其中t代表该测试点总共有多少组测试数据,k的意义见[问题描述]. 接下来t行每行两个整数n, m,其中n, ...

  2. hdu 6076 Security Check

    题 OvO http://acm.hdu.edu.cn/showproblem.php?pid=6076 2017 Multi-University Training Contest - Team 4 ...

  3. css实现翻面效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. C# 列排序

    private void button2_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns. ...

  5. laravel博客中文章删除遇到问题

    SQLSTATE[42S22]: Column not found: 1054 Unknown column 'blog_article.id' in 'where clause' (SQL: sel ...

  6. HDU 5726 GCD (2016多校、二分、ST表处理区间GCD、数学)

    题目链接 题意 : 给出一个有 N 个数字的整数数列.给出 Q 个问询.每次问询给出一个区间.用 ( L.R ) 表示.要你统计这个整数数列所有的子区间中有多少个和 GCD( L ~ R ) 相等.输 ...

  7. gulp+babel 实时转es6

    1.安装gulp  npm install gulp 2.得到package.json文件  npm init 2.全局安装Babel. npm install -g babel-cli    npm ...

  8. 微信小程序_(校园视)开发上传视频业务

    微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...

  9. vue项目中主要文件的加载顺序(index.html、main.js、App.vue)

    todo: https://www.cnblogs.com/xifengxiaoma/p/9493544.html https://www.cnblogs.com/stella1024/p/10563 ...

  10. Xpath中text(),string(),data()的区别

    摘要: 在XPath中,经常使用text()和string(),而我一般都是想到哪个用哪个,究竟他们之间有什么不同,没有在意过. 本质区别 text()是一个node test,而string()是一 ...