python高级特性

1、切片
对于经常取指定索引范围的操作,Python提供了切片(Slice)操作符
字符串’xxx’也可以看成是一种list,每个元素是一个字符
**小栗子:**利用切片操作,实现一个trim()函数,去除字符串首尾的空格
在这里插入图片描述
在这里插入图片描述
2、迭代:
1)通过for…in…来遍历list或tuple,称为迭代
2)dict迭代的是key,如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()
3)字符串也可迭代
for ch in ‘ABC’:
print(ch)
4)Python内置的enumerate函数可以把一个list变成索引-元素对,可以在for循环中同时迭代索引和元素本身:
在这里插入图片描述
使用迭代查找一个list中最小和最大值,并返回一个tuple:
在这里插入图片描述

3、列表生成式:
用来创建list的生成式,把要生成的元素x * x放到前面,后面跟for循环,for循环后还可以加上判断
eg:在这里插入图片描述
使用两层循环,可以生成全排列
在这里插入图片描述
列出当前目录下的所有文件和目录名:
在这里插入图片描述
for循环可以同时使用两个及以上变量,比如dict的items()可以同时迭代key和value
在这里插入图片描述
使用两个变量来生成list
在这里插入图片描述
把一个list中所有的字符串变成小写:
在这里插入图片描述
4、生成器:
在循环过程中不断推算后续元素,不必创建完整的list,一边循环一边计算的机制,称为生成器generator。
1)只要把一个列表生成式的[]改成(),就创建了一个generator,generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,使用for循环迭代,
在这里插入图片描述
2)一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator,generator函数在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行
普通函数调用直接返回结果,generator函数的“调用”实际返回一个generator对象
小栗子:
杨辉三角把每一行看做一个list,试写一个generator,不断输出下一行的list
在这里插入图片描述
在这里插入图片描述
5、迭代器:
可以直接作用于for循环的数据类型有:
1)集合数据类型,如list、tuple、dict、set、str等;
2)generator,包括生成器和带yield的generator function
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable,可以使用isinstance()判断一个对象是否是Iterable对象
生成器可以被next()函数不断调用并返回下一个值,直到抛出StopIteration错误表示无法继续返回,可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator,可以使用isinstance()判断一个对象是否是Iterator对象
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
把list、dict、str等Iterable变成Iterator可以使用iter()函数
小结:凡是可作用于for循环的对象都是Iterable类型;
凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python高级特性是指一些内置函数的高级用法,可以帮助我们更方便地完成一些功能。以下是一些常见的Python高级特性的介绍和示例: 1. 列表推导式(List Comprehension):通过简洁的语法创建新的列表。可以在一个列表中根据条件筛选元素、对元素进行操作等。例如: ```python # 创建一个包含1到10的平方的列表 squares = [x**2 for x in range(1, 11)] print(squares) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] ``` 2. 字典推导式(Dictionary Comprehension):类似于列表推导式,可以用简洁的语法创建新的字典。例如: ```python # 创建一个包含1到10的平方的字典 squares_dict = {x: x**2 for x in range(1, 11)} print(squares_dict) # 输出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100} ``` 3. 生成器表达式(Generator Expression):类似于列表推导式,但是返回一个生成器对象,可以逐个生成值,而不是一次性生成所有值。例如: ```python # 创建一个生成器,逐个生成1到10的平方 squares_gen = (x**2 for x in range(1, 11)) print(next(squares_gen)) # 输出:1 print(next(squares_gen)) # 输出:4 # ... ``` 4. 匿名函数(Lambda Function):一种简洁的函数定义方式,通常用于需要一个简单函数的地方。例如: ```python # 定义一个匿名函数,计算两个数的和 add = lambda x, y: x + y print(add(3, 5)) # 输出:8 ``` 5. 高阶函数(Higher-order Function):可以接受函数作为参数或返回函数的函数。例如,`map()`函数可以将一个函数应用到一个可迭代对象的每个元素上。例如: ```python # 将函数应用到列表的每个元素上 numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda x: x**2, numbers)) print(squared_numbers) # 输出:[1, 4, 9, 16, 25] ``` 这些是Python的一些常见高级特性,它们可以帮助我们更加简洁和高效地编写代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值