python—高级特性

一、生成式

1.列表生成式

列表生成式就是一个用来生成列表的特定语法形式的表达式。是Python提供的一种生成列表的简洁形式, 可快速生成一个新的list。
普通的语法格式:[exp for iter_var in iterable]
带过滤功能语法格式: [exp for iter_var in iterable if_exp]
循环嵌套语法格式: [exp for iter_var_A in iterable_A for iter_var_B in iterable_B]

比如 有下面的需求:

import string
import random
li = []
for i in range(100):
    s = ''.join(random.sample(string.ascii_letters,4))
    li.append(s)
print(li)

就可以用下面一行代码搞定:

codes = [''.join(random.sample(string.ascii_letters,4)) for i in range(100)]  ##将生成的字符串 存储在列表中
print(codes)

同理,类似的需求

# nums = []
# for num in range(1,101):
#     if num%3==0:
#         nums.append(num)
# print(nums)

还是可以用一行代码搞定

nums = [num for num in range(1,101) if num%3==0]
print(nums)

2.集合生成式

s= {i**2 for i in range(10)}
print(s)

3.字典生成式

d = {i:i**2 for i in range(10)}
print(d)

二、生成器

1.生成器实现的第一种方法

### 生成器实现的第一种方法: 将生成式改写成生成器
nums = (i**2 for i in range(1000))
print(nums)  ## 输出generator
# 打印生成元素,方法一:逐个生成 下面的next表示逐个生成 用的时候再说
print(next(nums))   #0
print(next(nums))   #1
print(next(nums))   #4
print(next(nums))   #9
# 打印生成元素,方法二:for循环生成
for i in nums:
    print(i)

2.生成器实现的第二种方法

### 生成器实现的第2种方法:yield关键字
#   return: 函数遇到return就返回,return后面的代码并不会执行。
#   yield:遇到yield则停止执行代码, 当再次调用next方法时,会从上次停止的地方继续执行,遇到yield停止。
def login():
    a = 1
    return 'login'
#    print(1)  ## return之后的就不再执行了  所以这句话无效
print(login())

def login():
    print('step1')
    yield 1
    print('step2')
    yield 2
    print('step3')
    yield 3

g = login()
print(next(g))
**以下为输出:**
step1
1

三、闭包

其特性如下:

# 1. 函数里面嵌套函数
#2. 外部函数的返回值是内部函数的引用
#3. 内部函数可以使用外部函数的变量

##1. 函数里面嵌套函数
# def tiemit():
#     def warpper():
#         print('warpper')
#     print('timeit')
# tiemit()
输出:
timeit
#2. 外部函数的返回值是内部函数的引用
def timeit():
    def warpper():
        print('warpper')
    print('timeit')
    return warpper
in_fun = timeit() ## wrapper函数, in_fun实质上就是wrapper函数
in_fun()

输出:
timeit
warpper
#3. 内部函数可以使用外部函数的变量
# def timeit(name):
#     def warpper():
#         print('warpper'+name)
#     print('timeit')
#     return warpper
# in_fun = timeit(name='mananananan') ## wrapper函数, in_fun实质上就是wrapper函数
# in_fun()
输出:
timeit
warppermananananan
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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的一些常见高级特性,它们可以帮助我们更加简洁和高效地编写代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值