千家信息网

Python高级特性有哪些

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容介绍了"Python高级特性有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!切片可以对l
千家信息网最后更新 2025年02月23日Python高级特性有哪些

本篇内容介绍了"Python高级特性有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  切片

  可以对list, tuple, string进行切片

  [起始位置:终止位置 + 1: 步长]

  可以使用负数,-1为倒数第一个数

  步长为负数时,从后向前分隔,对应的起始终止位置也要倒过来

  l = [1, 2, 3]

  l = l[::-1]

  #顺序反转

  #3, 2, 1

  迭代

  默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。

  当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。

  可以使用collections模块的Iterable类型判断是否为可迭代对象

  from collections import Iterable

  isinstance("123", Iterable)

  #True

  如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

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

  print(i, value)

  #0 A

  #1 B

  #2 C

  上面的for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:

  for x, y in [(1, 1), (2, 4), (3, 9)]:

  print(x, y)

  #1 1

  #2 4

  #3 9

  列表生成式

  要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):

  list(range(1, 11))

  #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  [x * x for x in range(1, 11)]

  #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  #for循环后面可以加if来筛选

  [x * x for x in range(1, 11) if x % 2 == 0]

  #[4, 16, 36, 64, 100]

  #可以使用多层循环,得到全排列

  [m + n for m in 'ABC' for n in 'XYZ']

  #['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

  #for循环前面可以加if else表达式

  [x if x % 2 == 0 else -x for x in range(1, 11)]

  #[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

  生成器 generator

  要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:郑州人流手术多少钱 http://mobile.sgyy029.com/

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

  L

  #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

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

  g

  # at 0x1022ef630>

  #可以通过next()函数获得generator的下一个返回值

  next(g)

  #0

  next(g)

  #1

  next(g)

  #4

  next(g)

  #9

  next(g)

  #16

  generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。

  创建了一个generator后,基本上永远不会调用next(),而是通过for循环来迭代它,并且不需要关心StopIteration的错误。

  定义generator:

  #打印斐波那契前N个数函数

  def fib(max):

  n, a, b = 0, 0, 1

  while n < max:

  print(b)

  a, b = b, a + b

  n = n + 1

  return 'done'

  #要把fib函数变成generator,只需要把print(b)改为yield b就可以了

  #这就是定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator

  def fib(max):

  n, a, b = 0, 0, 1

  while n < max:

  yield b

  a, b = b, a + b

  n = n + 1

  return 'done'

  函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

  迭代器

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

  被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。

  生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。

  把list、dict、str等Iterable变成Iterator可以使用iter()函数:

  isinstance(iter([]), Iterator)

  #True

  isinstance(iter('abc'), Iterator)

  #True

  Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。

  不知道Iterator的实际长度

"Python高级特性有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

函数 迭代 循环 元素 对象 生成 语句 位置 同时 方法 更多 错误 高级 特性 不断 个数 内容 实际 情况 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 远程办公需要提高网络安全要求 关于统战领域网络活跃人员数据库 江西网络安全技术专业大学 江西营销软件开发一体化 投影电视显示无法访问服务器 服务器戴尔r720怎么安装显卡 长沙编程软件开发流程 法院信息网络安全表态发言 大学网络安全班会内容 网页服务器如何安全维护 北京多功能网络技术开发机构 服务器获取图片资源失败怎么办 数据库保存的相关知识 系统显示数据库未知 软件开发展览会 网络安全防范提醒谈话 万方数据库主体分布图在哪儿 量子计算是网络安全的威胁吗 安卓项目建立数据库连接 国家标准网络安全风险 获取数据库形成一张表格 指挥自动化网络技术 数据库如何新建 构建网络安全综合体系 软件开发上课 霞浦县快珏网络技术服务部 网络安全防范网络诈骗 软件开发类专科学校 软件开发与人工智能类别名称 高质量的应用软件开发
0