资深程序员才知道的30个Python技巧

Python中的省略号Python省略号是三点序列,通常在自然语言中使用。但是您可能不知道的是,这也是Python中的有效对象:…Ellipsis它主要用于NumPy中的矩阵切片操作。但是,您可以在尚未实现的函数中使用它代替占位符,而不必使用通常的方法:def my_awesome_func():…这就是有效的Python代码2.数据类别从3.7版开始,Python附带了数据类。与常规类或其他替代方法相比,它们具有一些优点:返回多个值或字典;数据类需要最少的代码量;比.
摘要由CSDN通过智能技术生成
  1. Python中的省略号

Python省略号是三点序列,通常在自然语言中使用。但是您可能不知道的是,这也是Python中的有效对象:


Ellipsis
它主要用于NumPy中的矩阵切片操作。但是,您可以在尚未实现的函数中使用它代替占位符,而不必使用通常的方法:

def my_awesome_func():

这就是有效的Python代码

2.数据类别

从3.7版开始,Python附带了数据类。与常规类或其他替代方法相比,它们具有一些优点:

返回多个值或字典;
数据类需要最少的代码量;
比较数据类别的能力;
使用__repr__打印数据类以进行调试的能力;
减少由于类型提示数据类的要求而导致的错误机会。
运行中的示例数据类:

from dataclasses import dataclass
@dataclass
class Card:
rank: str
suit: str

card = Card(“Q”, “hearts”)
print(card == card)

True

print(card.rank)

‘Q’

print(card)
Card(rank=‘Q’, suit=‘hearts’)
3. Python之禅

最早的Python pep之一是PEP-20。这是19个Python编程论文的清单,称为“ The Zen of Python”。这些规则可以追溯到2004年,并以PEP-8为基础。

这个复活节彩蛋在Python中已经存在很长时间了,并列出了一组规则:

因此,只要您拥有Python REPL,就可以在屏幕上查看这些规则。

4.匿名功能

有时,函数的命名不值得特别注意。例如,如果您确定只使用一次。对于这种情况,Python建议使用匿名函数,也称为lambda函数。

可以将lambda函数分配给变量,从而创建一种定义函数的简洁方法:

add_one = lambda x: x + 1
add_one(3)
4
当您需要使用函数作为参数时,它会变得更加有趣。在这种情况下,通常只使用一次。如您所知,map将函数应用于可迭代对象的所有元素。我们可以在调用map时使用lambda:

numbers = [1, 2, 3, 4]
times_two = map(lambda x: x * 2, numbers)
list(times_two)
[2, 4, 6, 8]

这段代码很普通。例如,当您要将操作应用于迭代对象的每个元素时。在这种情况下,将map()与lambda函数结合使用既简洁又有效。

5.清单理解

整体理解可以替代用于填充列表的非审美循环。语法如下:

[ expression for item in list if conditional ]
用数字序列填充列表的最简单示例:

mylist = [i for i in range(10)]
print(mylist)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

由于您可以在此处使用表达式,因此可以使用数学:

squares = [x**2 for x in range(10)]
print(squares)

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

外部函数调用:

def some_function(a):
return (a + 5) / 2

my_formula = [some_function(i) for i in range(10)]
print(my_formula)

[2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0]

最后,您可以使用“ if”来过滤列表。在这种情况下,将仅保存那些可被2整除的值:

filtered = [i for i in range(20) if i%2==0]
print(filtered)

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值