总结python编程中的20种小技巧

Python作为如今必备语言之一,展现了不可替代作用。对于所有的数据科学工作者,如何提高使用Python的效率,这里,总结了20种Python的最佳实践、技巧和窍门。希望这些可以帮助大家能够提高工作的效率,并且在此过程中学习到一些有用的东西。

注:本文基于python3

1、列表(list)

列表(list)理解可以代替丑陋的for循环来填充列表。列表理解的基本语法为:[ expression for item in list if conditional ]

一个非常简单的示例,用数字序列填充列表:

[i for i in range(10)]

并且因为可以使用表达式,所以还可以进行一些数学运算,甚至调用外部函数。

最后,你可以使用if筛选列表。在这种情况下,我们仅保留可被2整除的值:

[i for i in range(10) if i%2==0]

2、检查对象的内存

使用sys.getsizeof(),你可以检查对象的内存使用情况。

3、返回多个值

Python中的函数可以返回多个变量,而无需字典,列表或类。

对于有限数量的返回值,这是可以的。但是超过3个值的任何内容都应放入类中。

4、使用data类

从Python 3.7版开始,Python提供data类。与常规类或其他替代方法(如返回多个值或字典)相比,它具有多个优点:

  • 数据类需要最少的代码
  • 你可以比较data类,因为它__eq__已为您实现
  • 你也可以轻松打印数据类以进行调试,因为它__repr__也已实现
  • data类需要类型提示,从而减少了发生错误的机会
5、就地变量交换

一项巧妙的小技巧,可以节省几行代码。

a,b = b,a

6、合并字典

从Python 3.5开始,合并字典变得更加容易:

如果键(key)重叠,则第一个词典中的键(key)将被覆盖。

7、首字母大小写

使用capitalize()函数将字符串的首字母转为大写,其余变为小写。

“welcome”.capitalize()

8、将字符串拆分为列表

你可以将字符串拆分为字符串列表。在这种情况下,我们分割空格字符:

list(“welcome”)

9、从字符串列表创建一个字符串

反之亦然,从上一个技巧开始,从列表中创建一个字符串,并在每个单词之间添加一个空格字符:

” “.join([‘2′,’0′,’2′,’0’])

10、表情符号
玩转Python? 一文总结30种Python的窍门和技巧

这将使人印象深刻或被排斥,这取决于谁在寻找。更严重的是,这可以派上用场,尤其是在分析社交媒体数据时。

首先,安装表情符号模块:

pip3 install emoji

安装此程序后,您可以执行以下操作:

访问emoji库页面(https://pypi.org/project/emoji/)以获取更多示例和文档。

11、列表(list)切片

列表切片的基本语法是:a[start:stop:step]

start,stop和step是可选的。如果不填写,则默认为:

  • 0为 start
  • 字符串的结尾 end
  • step默认为1
12、反转字符串和列表

你可以从上方使用切片符号来反转字符串或列表。通过使用step=-1,将元素反转:

a[::-1]
13、使用map()

Python的内置函数之一称为map()。map()的语法为:

map(function, something_iterable)

因此,你给它提供了要执行的功能以及要执行的某些功能。这可以是任何可迭代的事情。在下面的示例中,我将使用一个列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。

list(map(lambda x: x+1,a))

看一下自己的代码,看看是否可以map()在某处使用而不是循环!

14、从列表或字符串中获取唯一元素

通过使用set()函数创建一个集合,你可以从列表或类似列表的对象中a=[1,1,2,3,4,4]获取所有唯一元素。

set(a)
15、查找最常出现的值

要在列表或字符串中查找最频繁出现的值:

test=[1,1,2,3,4,4,4,4]
16、快速创建Web服务器

你可以快速启动Web服务器,以提供当前目录的内容:

python3 -m http.server

如果你想与同事共享一些东西或想要测试一个简单的HTML网站,这将很有用。

17、多行字符串

尽管可以在代码中使用三引号将多行字符串包括在内,但这并不理想。放在三引号之间的所有内容都将成为字符串,包括格式,如下所示。我更喜欢第二种方法,该方法将多行连接在一起,可以很好地格式化代码。唯一的缺点是你需要显式添加换行符。

18、三元运算符,用于条件赋值

这是使代码更简洁同时又保持可读性的另一种方法:

[on_true] if [expression] else [on_false]

举个例子:

x = "Success!" if (y == 2) else "Failed!"
19、计数

您可以使用集合库中的Counter来获取包含列表中所有唯一元素计数的字典:

from collections import Countera=[1, 1, 2, 3, 4, 4]Counter(a)
20、处理日期

python-dateutil模块(https://pypi.org/project/python-dateutil/)提供了对标准datetime模块的强大扩展。通过以下方式安装:

pip3 install python-dateutil

你可以用这个库做很多很酷的事情。我将把示例限制在我认为特别有用的一个:日志文件中日期的模糊解析等。

只需记住:常规的Python日期时间功能在哪里结束,python-dateutil就出现了!

发表评论

邮箱地址不会被公开。 必填项已用*标注