Python高级用法

Python高级用法

三元表达式
x = 10
y = 20
print(x if x > y else y)
x = 100
y = 20
print(x if x > y else y)

20

100

列表推导式和生成器

列表推导式

print([i for i in range(10)])
print([i*2 for i in range(10)])
print([i-1 for i in range(10)])

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]

生成器

把列表推导式的[]换成()就是生成器表达式

优点:省内存,一次只产生一个值在内存中

t = (i for i in range(10))
print(t)
print(f"next(t): {next(t)}")

zip()返回一个zip对象,其内部元素为元组;可以转化为列表或者元组

keys = ['name', 'age', 'gender']
values = ['nick', 19, 'male']
res = zip(keys, values)
print(res)
for i in res:
    print(i)
print(F"zip(keys,values): {zip(keys,values)}")

info_dict = {k: v for k, v in res}
print(f"info_dict: {info_dict}")

<zip object at 0x000001D6D7870E08>
('name', 'nick')
('age', 19)
('gender', 'male')
zip(keys,values): <zip object at 0x000001D6D7870E88>
info_dict: {}

匿名函数

匿名函数就是一个没有变量名的函数对象

res = (lambda x, y: x+y)(1, 2)
print(res)
print(lambda x, y: x+y)

3
<function at 0x000001958A013E18>

应用(一般和内置函数联用)

匿名函数通常与max()、sorted()、filter()、sorted()方法联用。

举例filter 匿名

name_list = ['nick', 'jason sb', 'tank sb', 'sean sb']

filter_res = filter(lambda name: name.endswith('sb'), name_list)
print(f"list(filter_res): {list(filter_res)}")

list(filter_res): ['jason sb', 'tank sb', 'sean sb']

正常函数

name_list = ['nick', 'jason sb', 'tank sb', 'sean sb']
def zx(name):
    return name.endswith('sb')

filter_res = filter(zx, name_list)
print(f"list(filter_res): {list(filter_res)}")

list(filter_res): ['jason sb', 'tank sb', 'sean sb']

转载于:https://www.cnblogs.com/zx125/p/11348838.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python作为一门高级编程语言,有很多高级用法,下面列举一些比较常用的: 1. 列表推导式 列表推导式是一种快速创建列表的方式,它使用一种类似于数学中集合的描述方式来创建列表。例如,要创建一个1~10的整数列表,可以使用以下代码: ```python lst = [i for i in range(1, 11)] ``` 2. 生成器表达式 生成器表达式也是一种快速创建序列的方式,它使用类似于列表推导式的语法,但是返回的是一个生成器对象,而不是列表对象。例如,要创建一个1~10的整数生成器,可以使用以下代码: ```python gen = (i for i in range(1, 11)) ``` 3. lambda表达式 lambda表达式是一种简洁的匿名函数定义方式,它可以在不使用def关键字定义函数的情况下,直接创建一个函数对象。例如,要定义一个将输入参数加倍的lambda函数,可以使用以下代码: ```python f = lambda x: x * 2 ``` 4. 装饰器 装饰器是一种可以动态地修改函数或类的行为的函数或类。它可以在不修改函数或类本身的情况下,增加或改变函数或类的功能。例如,要定义一个简单的装饰器,可以使用以下代码: ```python def my_decorator(func): def wrapper(*args, **kwargs): print("Before function call") result = func(*args, **kwargs) print("After function call") return result return wrapper @my_decorator def my_function(): print("Function called") my_function() ``` 5. 上下文管理器 上下文管理器是一种可以在特定代码块中自动执行特定操作的对象,它通常用于管理资源(如文件或网络连接等)的获取和释放。例如,要定义一个简单的上下文管理器,可以使用以下代码: ```python class MyContextManager: def __enter__(self): print("Entering context") return self def __exit__(self, exc_type, exc_value, traceback): print("Exiting context") def do_something(self): print("Doing something") with MyContextManager() as cm: cm.do_something() ``` 以上是Python的一些高级用法,这些用法可以提高代码的效率和可读性,也可以让代码更加简洁和灵活。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值