每天5个Python小技巧(day3)

本文介绍了Python中的一些高效语法特性,包括海象运算符、`map()`函数、`lambda`表达式、字符串格式化方法。海象运算符允许在判断条件中执行运算,简化代码但可能降低可读性。`map()`函数用于将函数应用于多个容器中的元素,适用于批量处理数据。`lambda`表达式提供了一种简洁创建匿名函数的方式,常用于快速定义简单的函数。字符串格式化方面,介绍了字面值插值和模板字符串两种方式,方便地插入变量和进行字符串操作。这些特性提升了Python代码的简洁性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. “:=”, 海象运算符

​ 允许在判断条件中进行运算,减少额外的运算。

i = len((l := [1, 2, 3]))  # 先对l进行赋值,在对i赋值
while (i := i - 1) >= 0:  # 允许在表达式中运算
    print(l[i], end=' ')
[out] 3 2 1 

​ 等价于(仍使用while)

l = [1, 2, 3]
i = len(l) - 1
while i >= 0:
    print(l[i], end=' ')
    i -= 1

​ 一定程度上简化了代码,但减少了可读性。

​ python中的海象操作符比较少用,允许在判断中进行简单的赋值操作,某些情况下可减少运算,不过不太普及,知道它的存在就行。

2.map()函数
map(func, *args)

func: 函数名

*args: 参数以容器形式传递

return: 返回map的类型,可以进行转换,转换成列表,元组等。

例子:

def add(x_, y_):
    return x_ + y_


print(list(map(add, [1, 2, 3], (4, 5, 6))))
[5, 7, 9]

​ 参数以容器的形式传入map()中和返回值,对一系列值使用函数时可使用map函数,比较方便。

3.lambda

​ 可使用lambda关键字设计简单的函数,返回值为表达式中的计算值。

add = lambda x, y: x + y
print([add(i, j) for i, j in zip([1, 2, 3], [4, 5, 6])])
[5, 7, 9]

​ 还可以对数据降维,返回处理值,

tuple_ = ((4, 'a'), (3, 'b'), (2, 'c'), (1, 'd'))
print(sorted(tuple_, key=lambda x: x[0]))  # 根据键值排序
[(1, 'd'), (2, 'c'), (3, 'b'), (4, 'a')]

​ 比如上面的例子中,lambda表达式中的x相当于tuple_中的元素,然后返回元素(长度为二的元组)的第一个元素,即key[4, 3, 2, 1]

4. 字符串格式化 —— 字符串字面值插值
# insert = 'World'
# print(f"Hello {insert}!") 
Hello World!

字符串以 ‘f’ 开头,在字符串中用大括号括起变量进行嵌入,大括号中还可以进行简单的运算。

5. 字符串格式化 —— 模板字符串

(1)普通模板

import time
logInfo = "{} -- code: {} -- User: {}"  # 自定义模板。
info = [time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime()), 200, 'Jason']

print(logInfo.format(*info))

​ 自定义模板,用{}占位,模板.format(...)嵌入。

(2)标准库中的string.Template

from string import Template

logInfo = Template('Hello, $user!')
log1 = logInfo.substitute(user='Jason')
print(log1)
Hello, Jason!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值