【Python】高级特性

在Python中有其特有的特性,用于提高开发效率,下面介绍几个包括切片,迭代,列表生成式,生成器,迭代器。

  • 切片

  1. 索引方式
  2.  

  3. 主要包括正索引和负索引一般是object[a:b:c=1]三个参数,前俩个是位置参数,第三个是默认参数。
  4. 切片的几种方式例如a=[1,2,3,4,5,6,7]
    1. 单个切片a[1]
    2. 全部切片a[:]从左往右,a[::]从左往右,a[::-1]从右往左(步长决定从左到右或者从右到左,为-1时候就是倒序)
    3. 索引为正a[:3],a[:3:-1]倒序从7倒3但是不含3,切片包左不包右,如果切片超出就会返回空。
    4. 索引都为负和为正一样,只是注意步长是否是-1。
    5. 索引有正也有负的时候,也是同样道理主要还是看好是从左往右还是从右往左,然后对应好索引就可以。
    6. 连续切片操作a[:][1,4][2]
    7. 切片参数可以使用表达式a[1+1:8/2]
    8. 元组,字符串等都可以进行切片操作。
    9. 切片常用操作,取奇数偶数a[1::2],a=[::2],拷贝对象b=a[:],修改元素a[1:4]=['a','b']。
  • 迭代

  1. 主要是对for 的应用,目前Python 有很多对象可以进行迭代如list,tuple,字符串等
    def first():
        for a in 'ABF':
            print(a)
    first()

     

  2. 判断一个对象是否可以迭代,可以使用collection模块中的iterable进行判断。
  3. 如果需要对list 的索引及元素进行迭代,目前可以使用Python 中的enumerate
    def b():
        for a,b in enumerate([4,5,68]):
            print(a,b)
    b()

     

  4. 迭代dict如果只写一个值那么就只遍历Key,如果写俩个值就会遍历俩个。
  • 列表生成式

  1. 在Python 中创建一个列表主要使用的是列表生成器,例如
    def b():
        for a in enumerate([cc for cc in range(23)]):
            print(a)
    b()
  2. 生成器也可以做判断

    def b():
        for a in enumerate([cc for cc in range(2,23) if cc % 2==0]):
            print(a)
    b()

     

  3. 生成器可以使用俩个for进行生成列表

    def b():
        for a in [cc+dd for cc in range(2,23) if cc % 2==0 for dd in range(3,24) if dd % 2 !=0]:
            print(a)
    b()

     

  4. 也可以使用for 进行对dict 的遍历形成列表。

    def c():
        for a in [b+'='+c for b,c in {'name':'chenhui','age':'23'}.items()]:
            print(a)

     

  • 生成器

  1. 生成器的产生主要是因为创建列表生成器如果元素太多占用太多内存,不够优化。也有是因为无法使用for进行生成,算法比较复杂的时候使用,生成器主要保存的是算法不是元素。
  2. 创建生成器就是把列表表达式的[ ]改为()就例如a=(v*2 for v in range(1,10) )这个生成器可以使用next(a),还可以使用for进行迭代。
  3. 使用yielt 创建生成器generator function
    def d (max):
        a,b,c=0,0,1
        while a<max:
            yield c
            b,c=b,b+c
            a=a+1
        return 'done'
    if __name__ == '__main__':
        print([a for a in d(9)])

     

  • 迭代器

  1. 生成器都是Iterator对象,但listdictstr虽然是Iterable,却不是Iterator
  2. 如果要使list,dict,str 变为Iterator则使用iter([])
    print(iter(['a','b']))

     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值