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高级功能_python高级篇相关推荐

  1. python主要功能_Python主要功能

    python主要功能 Python main function is executed only when it's being executed as a python program. As yo ...

  2. python高级应用_Python高级编程技巧

    Python 高级编程技巧 本文展示一些高级的 Python 设计结构和它们的使用方法.在日常工作中,你可以根据需要 选择合适的数据结构, 例如对快速查找性的要求. 对数据一致性的要求或是对索引的要求 ...

  3. python高级教程_Python高级进阶教程

    这个系列的教程是在刘金玉编程的<零基础python教程>基础上的高级进阶应用. 教程列表: Python高级进阶教程001期 pycharm+anaconda3+pyqt5可视化界面开发环 ...

  4. python的数据模型_python高级(一)—— python数据模型(特殊方法)

    本文主要内容 collections.namedtuple __getitem__ 和 __len__ __repr__和__str__ __abs__.__add__和__mul__ __bool_ ...

  5. python切片迭代_Python高级特性 切片 迭代解析

    切片:方便截取list.tuple.字符串部分索引的内容 正序切片 语法:dlist = doList[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素 ...

  6. 我对python的理解_python高级函数以及我对python的理解

    常见的高级函数:lambda.map.reduce.filter.list comprehension lambda 匿名函数,限制一个表达式 m = lambda x,y:x+y # 5 m(2,3 ...

  7. python高级特性_Python高级特性

    参考原文 开篇:高级特性是用来简化我们常用操作的特性,合理利用高级特性可以使代码更简洁.明了. 切片 取list或tuple中的指定索引范围的操作,用循环十分繁琐,因此Python提供了切片(Slic ...

  8. python menu实例_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体

    知识回顾: 1.掌握的是QCalendarWidget日历控件 2.click点击事件(信号)触发 3.掌握日期的格式化QDate 本节知识视频教程 以下开始文字讲解: 一.案例:菜单 1.新建第一个 ...

  9. python generator输出_python 高级特性:Generator(生成器)

    格式对比: List Imprehensions 格式:[ 语句 for .. in ..] Generator 格式:(语句 for .. in ..) 区别:List存储的是具体内容,每个元素都占 ...

最新文章

  1. Spring MVC + Hibernate JPA + Bootstrap 搭建的博客系统
  2. 成功解决TypeError: ufunc 'sqrt' not supported for the input types, and the inputs could not be safely co
  3. Spring 源码阅读 之 Spring框架加载
  4. SpringBootSpring --- Redis 集成 Error creating bean with name 'enableRedisKeyspaceNotificationsIniti
  5. ajax 通过json xml文件,php+Ajax处理xml与json格式数据的方法示例
  6. 第 7 章 Neutron - 071 - 详解 ML2 Core Plugin(I)
  7. 双十一大促过后怎么维护淘宝店铺数据
  8. 2020年中式烹调师(高级)考试试卷及中式烹调师(高级)模拟考试题
  9. 漫画 | 芯片战争50年,Intel为什么干不掉AMD?
  10. 曙光服务器怎么外接显示器,iPad平板外接显示器教程 | iPad平板怎么外接显示器_什么值得买...
  11. 深度学习与AI入门——追风记
  12. 力扣(718.1143)补9.12
  13. 调用wireshark(二):调用协议解析器
  14. P2918 [USACO08NOV]Buying Hay S(买干草)(ssl 2895)
  15. element 走马灯实现图片轮播
  16. vue echarts 实现地图大气泡图
  17. 关于XRP需要了解的10件事情
  18. ArcBlock ⑫ 月报 | ABT 平台正式对外开放 2019年产品路线图亮相
  19. 手把手带你玩转Spark机器学习-使用Spark进行数据处理和数据转换
  20. 很多人不会画动漫人物眼睛里面的阴影?那今天这个帮到你了!

热门文章

  1. struts2_HelloWorld
  2. 【转】JMeter学习(二十七)Jmeter常见问题
  3. C语言 · 8皇后问题
  4. VHDL 语法小点(1)
  5. 数据库高级知识——查询截取分析(二)
  6. 计算机网络——物理层设备
  7. 7-2 哈夫曼编码 (30 分)
  8. php7 返回值,7.6.4 函数返回值
  9. android录音播放列表,android数据库里的视频,图片,音频表
  10. c语言注释参与程序设计的编译,提高C语言程序设计教学的有益探索