社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python圈子 • 5 年前 • 412 次点击  
阅读 3

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

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

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

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

Hello World

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

In [1]: import __hello__
Hello world!
复制代码

交换变量

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

In [1]: x,y = y,x
复制代码

变量比较

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

In [24]: x = 10
​
In [25]: 5 < x < 20
Out[25]: True
​
In [26]: 11 < x < 20
Out[26]: False
复制代码

列表推导式

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]
复制代码

合并字符串

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

In [5]: x = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
​
In [6]: ''.join(x)
Out[6]: 'abcdefg'
复制代码

列表切片

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]
复制代码

反转字符串

In [7]: x = 'Hello Python!'
​
In [8]: x[::-1]
Out[8]: '!nohtyP olleH'
复制代码

同时获取下标和值

x = list(range(10))
for index, value in enumerate(x):
    print(index, value)
复制代码

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)]
复制代码

闭包

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 的技巧,都是大家平时工作必须掌握的技能。大家学会了么。

文源网络,仅供学习之用,版权归原作者所有,如有侵权请联系删除。

在学习Python的道路上肯定会遇见困难,别慌,我这里有一套学习资料,包含40+本电子书,800+个教学视频,涉及Python基础、爬虫、框架、数据分析、机器学习等,不怕你学不会! shimo.im/docs/JWCghr… 《Python学习资料》

关注公众号【Python圈子】,优质文章每日送达。

file

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/70463
 
412 次点击