涨姿势!这些鲜为人知的 Python 骚操作你知道几个

简介: 众所周知,Python 以简洁著称,这个从我们写的第一行 Python 代码中就能看出来。今天派森酱就给大家整理了一些经典的一行代码操作,可能有些你还不知道,但对你未来的工作(装逼)肯定有大用处。

0x01 进制转换


平时的编码过程中,进制转换是非常常用的一个功能,尤其是涉及到一些算法的时候更是频繁。事实上 Python 已经内置了各个进制转换的 Api,咱们直接调用即可。


In [1]: int('1100', 2)
Out[1]: 12
In [2]: int('30', 8)
Out[2]: 24
In [3]: int('ac9', 16)
Out[3]: 2761


0x02 斐波纳契数列

斐波纳契数列是一个很经典的数列,其通项公式为第一项和第二项都为 1,从第三项开始,每一项都等于前两项之和。


In [4]: fibonacci = lambda x: x if x <= 1 else fibonacci(x - 1) + fibonacci(x - 2)
In [5]: fibonacci(15)
Out[5]: 610


0x03 快速排序


快速排序是初级工程师常考的一个算法题,整个算法写下来的话基本都需要八九行,来看看 Python 是如何一行代码搞定快速排序的。


In [6]: quick_sort = lambda l: l if len(l) <= 1 else quick_sort([x for x in l[1:] if x < l[0]]) + [l[0]] + quick_sort([x for x in l[1:] if x >= l[0]])
In [7]: quick_sort([18, 20, 12, 99, 200, 59, 66, 34, 22])
Out[7]: [12, 18, 20, 22, 34, 59, 66, 99, 200]


0x04 写入文件


文件操作也是我们常用的操作之一,但你见过用 print 函数来写入文件的么。


print("Hello, Python!", file=open('file.txt', 'w'))


0x05 字母异位词


顾名思义,字母异位词就是通过交换单词中字母的顺序,两个单词最终是一样的。


In [9]: from collections import Counter
In [10]: s1, s2 = 'apple', 'orange'
In [11]: 'anagram' if Counter(s1) == Counter(s2) else 'not an anagram'
Out[11]: 'not an anagram'


0x06 矩阵转换


对于数据分析工作者,经常会接触到矩阵,那么就需要熟悉对矩阵的各种操作。而矩阵转换就是常规操作之一。


In [12]: num_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
In [13]: result = list(list(x) for x in zip(*num_list))
In [14]: result
Out[14]: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]


0x07 字典数


虽然现在很多常用的算法都被封装成 Api 直接调用就好了,但并不意味着我们的工作就不需要写算法了。在写算法的过程中会用到一些常见的字典数,比如大写字母、小写字母、数字等。而这些 Python 都考虑到了,直接调用即可。


In [15]: import string
In [16]: string.ascii_lowercase
Out[16]: 'abcdefghijklmnopqrstuvwxyz'
In [17]: string.ascii_uppercase
Out[17]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
In [18]: string.digits
Out[18]: '0123456789'


0x08 合并列表


在对接外部接口或者数据处理时,嵌套列表是非常常见的数据结构,但显然整合成一个列表更容易处理。


In [19]: num_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
In [20]: result = [item for sublist in num_list for item in sublist]
In [21]: result
Out[21]: [1, 2, 3, 4, 5, 6, 7, 8, 9]


0x09 推导式


推导式是 Python 的精华所在,极大的方便了我们创建列表和字典。


In [22]: num_list = [num for num in range(0, 10)]
In [23]: num_list
Out[23]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [24]: num_set = {num for num in range(0, 10)}
In [25]: num_set
Out[25]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
In [26]: num_dict = {x: x * x for x in range(1, 5)}
In [27]: num_dict
Out[27]: {1: 1, 2: 4, 3: 9, 4: 16}


总结

今天派森酱带大家一起梳理了一些看起来比较有用(装逼)的一行代码操作,方便小伙伴们在以后的工作中提高工作效率,更愉快的摸鱼。

关于 Python 的简洁操作,你还有什么独家秘笈想和大家分享呢,可以在评论区多多交流哦~

目录
相关文章
|
25天前
|
Python
高阶函数如`map`, `filter`, `reduce`和`functools.partial`在Python中用于函数操作
【6月更文挑战第20天】高阶函数如`map`, `filter`, `reduce`和`functools.partial`在Python中用于函数操作。装饰器如`@timer`接收或返回函数,用于扩展功能,如记录执行时间。`timer`装饰器通过包裹函数并计算执行间隙展示时间消耗,如`my_function(2)`执行耗时2秒。
19 3
|
25天前
|
存储 Go 索引
牢记python对象的操作方式
【6月更文挑战第20天】在Python中,`hash()`和`is`帮助确定对象的相等性。`dir()`和`vars()`揭示对象的属性和内部表示,`__slots__`优化内存使用。列表和字典结构有不同的内存和性能特性,字典使用哈希表进行快速访问。
72 5
牢记python对象的操作方式
|
3天前
|
Python
|
6天前
|
SQL 关系型数据库 MySQL
「Python入门」python操作MySQL和SqlServer
**摘要:** 了解如何使用Python的pymysql模块与MySQL数据库交互。首先,通过`pip install pymysql`安装模块。pymysql提供与MySQL的连接功能,例如创建数据库连接、执行SQL查询。在设置好MySQL环境后,使用`pymysql.connect()`建立连接,并通过游标执行SQL(如用户登录验证)。注意防止SQL注入,使用参数化查询。增删改操作需调用`conn.commit()`来保存更改。pymssql模块类似,但导入和连接对象创建略有不同。
11 0
「Python入门」python操作MySQL和SqlServer
|
19天前
python+Pycharm+selenium操作浏览器(Chorme或Edge)
python+Pycharm+selenium操作浏览器(Chorme或Edge)
32 1
|
19天前
|
jenkins 持续交付 API
使用Python操作Jenkins的过程详解
Python作为一种简洁、灵活且功能丰富的编程语言,可以与各种API轻松集成,Jenkins的API也不例外。借助于Python中的python-jenkins模块,我们可以轻松地编写脚本来连接到Jenkins服务器,并执行各种操作,如创建、删除、构建Jobs等。这种自动化的方式不仅提高了效率,还使得CI/CD流程更加灵活和可控。
|
26天前
|
Python
Python列表推导式是一种简洁的创建新列表的方式,它允许你在一行代码中完成对数据的操作和转换
【6月更文挑战第19天】Python列表推导式是创建新列表的简洁语法,它在一行内处理数据。表达式如`[expr for item in iterable if cond]`,其中`expr`是对元素的操作,`item`来自`iterable`,`if cond`是可选过滤条件。例如,将数字列表平方:`[x**2 for x in numbers]`。嵌套列表推导处理复杂结构,如合并二维数组:`[[a+b for a,b in zip(row1, row2)] for row1, row2 in zip(matrix1, matrix2)]`。简洁但勿过度复杂化。
25 5
|
26天前
|
Python
Python教程:Python中的输入与输出操作
在编程语言中,输入(Input)和输出(Output),简称I/O,是基础且重要的概念。Python作为一门易于学习且功能强大的编程语言,在处理输入和输出方面提供了多种方式。本文将深入探讨Python中的输入输出操作,包括标准输入输出、文件操作、以及网络I/O等领域
31 4
|
24天前
|
SQL Oracle 关系型数据库
Python连接数据库进行数据查询的操作代码
mysql数据库(mariadb) 连接数据库 首先,你需要使用MySQLdb.connect()函数建立与MySQL数据库的连接。你需要提供数据库服务器的地址(host),用户名(user),密码(passwd),以及你想要操作的数据库名称(db)。 创建Cursor对象 一旦建立了数据库连接,你可以使用连接对象的cursor()方法来创建一个cursor对象。这个方法返回一个cursor实例,你可以使用这个实例来执行SQL查询和命令。
|
27天前
|
Python
【干货】python xlwt写入excel操作
【干货】python xlwt写入excel操作
14 2