涨姿势!这些鲜为人知的 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 的简洁操作,你还有什么独家秘笈想和大家分享呢,可以在评论区多多交流哦~

目录
相关文章
|
4月前
|
存储 监控 数据处理
💻Python高手必备!文件系统操作秘籍,让你的数据存取如臂使指
【7月更文挑战第29天】在数据驱动时代, Python以简洁语法、丰富库生态和强大跨平台能力, 成为数据科学等领域首选。本文探讨Python文件系统操作秘籍, 助力高效数据处理。
47 11
|
4月前
|
索引 Python
Python的列表操作有哪些?
Python的列表操作非常丰富,包括列表的创建、元素的访问、修改、添加、删除、切片、排序等多个方面。
44 12
|
4月前
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
128 3
|
4月前
|
数据挖掘 数据处理 Python
🔍深入Python系统编程腹地:文件系统操作与I/O管理,打造高效数据处理流水线
【7月更文挑战第29天】深入Python系统编程腹地:文件系统操作与I/O管理,打造高效数据处理流水线
36 3
|
4月前
|
安全 数据安全/隐私保护 Python
|
4月前
|
Serverless 语音技术 开发工具
函数计算操作报错合集之怎么何集成nls tts python sdk
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
|
4月前
|
API Python
Python高手修炼手册:精通文件系统操作,掌控I/O管理,提升编程效率
【7月更文挑战第30天】在 Python 编程中, 文件系统操作与 I/O 管理是连接程序与数据的关键。初学者常因路径错误和权限问题受挫, 而高手能自如管理文件。传统 `os` 和 `os.path` 模块易出错, `pathlib` 提供了更直观的对象导向 API。I/O 方面, 同步操作会阻塞程序, 异步 (如使用 `aiofiles`) 则能大幅提升并发能力。真正的高手不仅掌握 API, 更能预见性能瓶颈并优化代码, 实现高效与优雅。
40 1
|
4月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之重新上传后只有SQL无法运行,而Python可以正常运行,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
Python