10 个让你相见恨晚的 Python 骚操作

来源:Python 技术「ID: pythonall」

众所周知,Python 以语法简洁著称,同样实现一个功能,Java 可能要十来行,Python 一行就可以搞定。

Python 的代码之所以这么优雅,完全归功于其独有的特性,只要你掌握了这些特性,同样可以写出像诗一样的代码。

下面我们就一起看看 Python 中的骚操作。

0x00 Hello World

对于大部分程序员来说,第一个程序应该都是 "Hello World!" 了,Python 直接将该入门程序做成了一个包。

In [1]: import __hello__
Hello world!

0x01 交换变量

一行代码搞定变量交换,无需临时变量,也无需异或操作。

In [1]: x,y = y,x

0x02 变量比较

对于变量的连续比较,Python 是支持的比较好的。

In [24]: x = 10

In [25]: 5 < x < 20
Out[25]: True

In [26]: 11 < x < 20
Out[26]: False

0x03 列表推导式

In [2]: list = list(range(10))
# 取偶数
In [3]: even = [x for x in list if x % 2 == 0]

In [4]: even
Out[4]: [0, 2, 4, 6, 8]

0x04 合并字符串

很多语言合并字符串大都是通过 + 号来实现的,但由于字符串的不可变性,不断合并后的字符串会不断的申请新的内存。

In [5]: x = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

In [6]: ''.join(x)
Out[6]: 'abcdefg'

0x05 列表切片

In [2]: x
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 取索引为 2 到 8 的值,步长为 2
In [4]: x[2:8:2]
Out[4]: [2, 4, 6]

# 步长为负值,表示从后面取值
In [6]: x[::-2]
Out[6]: [9, 7, 5, 3, 1]

0x06 反转字符串

In [7]: x = 'Hello Python!'

In [8]: x[::-1]
Out[8]: '!nohtyP olleH'

0x07 同时获取下标和值

x = list(range(10))
for index, value in enumerate(x):
    print(index, value)

0x08 zip()函数

In [7]: a = [1,2,3]

In [8]: b = [4,5,6]

In [9]: c = [7,8,9]

In [16]: list(zip(a, b, c))
Out[16]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

# 逆操作
In [18]: zz = (zip(a, b, c))

In [19]: x, y, z = zip(*zz)

In [20]: x,y,z
Out[20]: ((1, 2, 3), (4, 5, 6), (7, 8, 9))

# 合并列表相邻项
In [22]: a = [1, 2, 3, 4, 5, 6]

In [23]: list(zip(a[::2], a[1::2]))
Out[23]: [(1, 2), (3, 4), (5, 6)]

0x09 闭包

def outer(x):
    def inner(y):
        # 在内函数中 用到了外函数的变量
        nonlocal x
        x += y
        return x + y

# 外函数的返回值是内函数的引用
    return inner

fun = outer(10)

print(fun(10)) # 30
print(fun(10)) # 40
print(fun(10)) # 50

总结

今天我们学习了一些 Python 的技巧,都是大家平时工作必须掌握的技能。大家学会了么。

(0)

相关推荐

  • Python 全套教程 学习笔记

    Python 全套教程 学习笔记 Python 全套教程 学习笔记 print()函数 转义字符 二进制与字符编码 Python中的标识符和保留字 变量的定义和使用 数据类型 数据类型转换 Pytho ...

  • 万字长文丨大白话带你由浅入深Python编程语言

    Life is short, you need Python.(人生苦短,我用 Python.) --Bruce Eckel 前言 听说现在是全民 Python 的时代,虽然不知道事实如何,但学会 P ...

  • 【C语言更新】字符串与指针

    文/Edward 之前我们说过关于字符的一些内容,字符的原理,归根到底就是将我们常用的一些字符根据编号整理成一张统一的表,每个字符对应着这个表里面的一个数值,这一过程就是字符的编码. 然而大多数时候我 ...

  • Python期末复习笔记

    Python期末复习笔记 簟纹 关注 0.154 · 字数 4487 · 阅读 1780 2021-01-07 21:54 本篇根据老师画的重点基本上将期末考点都囊括了 如果发现有错误或遗漏欢迎各位在 ...

  • 危险的转变:Python正在从简明转向臃肿,从实用转向媚俗

    作者 | 天元浪子 头图 | CSDN 出品 | CSDN 博客 国庆长假期间,Python3.9正式推出,各大IT平台和众多自媒体纷纷火力全开,热推Python3.9的新增特性.然而,除了媒体的自娱 ...

  • 收藏!20条非常实用的Python代码实例

    据说Python之父-Guido Van Rossum打算让CPython更快,速度直接翻五倍,这是实实在在的好消息. Python一直以来被诟病速度慢,影响开发效率,希望这次Guido老爷子能帮py ...

  • python世界中形影不离的一对情侣

    文末附有项目代码可供下载 input函数 input()是从控制台获取用户输入的信息,不论用户输入的是什么,input()都会返回字符串类型.<变量> = input(<提示性文字& ...

  • Python骚操作,提取pdf文件中的表格数据!

    在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报.发行上市公告等.面对如此多的数据表格,采用手工复制黏贴的方式显然并不可取.那么如何才能高效提取出pdf文 ...

  • 这个 win 10 的骚操作,我爱了!

    很多时候我们虽然经常用着某个东西,但是并不代表我们已经对它完全掌握了解了. 就拿微信来说,我们也是天天用,但是大侠之前有发过一篇关于微信隐藏小功能的文章. 看到留言还是有很多小伙伴是不知道这些功能的, ...

  • 10首一见如故,相见恨晚古诗词

    一.<卜算子>宋·施酒监相逢情便深,恨不相逢早.识尽千千万万人,终不似.伊家好.别你登长道.转更添烦恼.楼外朱楼独倚阑,满目围芳草.二.<节妇吟>唐·张籍君知妾有夫,赠妾双明珠 ...

  • 让女生脸红心跳的10个骚操作!

    (脱单追求等情感问题添加文末导师微信) 文 / 爱姐 图 / mateppe 听说过一句话,心动是有声音的. 就像是盛夏透明玻璃杯子里,轻轻丢下两颗冰块,清脆的声响, 也像春天漫天碧绿田野里,暖风送来 ...

  • 借:管理费用-折旧费 10万,贷:银行存款 10万,这种骚操作怎么填汇算?

    时间过得好快啊,还有不到10天,2020年企业所得税汇算清缴工作就要结束了,二哥从4月开始给大家分享汇算清缴的文章,到今天已经有40多篇内容了(详细见文末链接汇总),这些内容虽然没有涵盖所得税汇算的每 ...

  • 解放你的双手,21个python的骚操作,直呼牛逼(下)

    废话不多说,接上直接开整,我会以图片的形式放给大家看,不要想着偷偷复制,做编程就得边看边敲!!!

  • Win 10 这几个鲜为人知的骚操作,是大佬与小白的差距

    Windows 10 是可能是地球上最复杂.又最强大的桌面操作系统. 尽管用户界面非常直观,但如果没有仔细研究,很多功能可能一辈子都不会发现.然而正是这些鲜为人知的功能,才是 Windows 10 与 ...

  • 相见恨晚的 Python 内置库:itertools

    前言 很多人都致力于把Python代码写得更Pythonic,一来更符合规范且容易阅读,二来一般Pythonic的代码在执行上也更有效率.今天就先给大家介绍一下Python的系统库itertools. ...

  • 真香!Python十大文件骚操作!!

    来源:Python数据科学 作者:东哥起飞 日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. ...