iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >你所不知道的Python奇技淫巧13招【实用】
  • 730
分享到

你所不知道的Python奇技淫巧13招【实用】

奇技淫巧你所Python 2022-06-04 18:06:20 730人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

有时候你会看到很Cool的python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写。其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythonic的技巧,你一样可以

有时候你会看到很Cool的python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写。其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythonic的技巧,你一样可以写出像诗一样的Python代码。

1.导入模块

你是不是经常对调用模块时输入一长串模块索引感到头疼?说实在的,数量少的时候或许还可以勉强忍受,一旦程序规模上去了,这也是一项不容小觑的工程。


#Bad
import urllib.request
url = r'Http://www.landsblog.com'
req = urllib.request.Request(url)
response = urllib.request.urlopen(req)
#Good
fORM urllib import request 
url = r'http://www.landsblog.com'
req = request.Request(url)
response = request.urlopen(req)

这样是不是节省了一点时间呢?

但是这样简写可能造成模块名重复的问题,如何解决呢?


from module_a import fun as a_fun
from module_b import fun as b_fun

这样的方法还适用于模块名比较长的模块,笔者印象最深的就是BeautifulSoup模块


from bs4 import BeautifulSoup as BS
html = '''
  <html>
   ......
  </html>
  '''
soup = BS(html)

省时省力。

2.关于 "_" ##

这是一个非常有用的功能,可惜很少人知道。

当你在交互界面敲代码,获得一个临时结果,却没有用变量名去保存它的时候,可以用"_"来获取最近一次临时结果。


>>> 1 + 1
2
>>> _
2

在"_"中存储最后输出的值。这在交互式模式中是非常有用的,当你在过程中没有保存计算结果,或者你想看最后一步执行的输出结果。

3.合并字符串

这是一个老生常谈的问题,当我们需要将数个字符串合并的时候,习惯性的使用"+"作为连接字符串的手段。

然而,由于不可变对象在内存中生成后无法修改,合并后的字符串会重新开辟出一块内存空间来存储。这样像滚雪球一样,将内存快速消耗殆尽。


# Bad
string = ['a','b','c','d','e','f','g','h']
def fun(string):
 all_string = ''
 for i in string:
  all_string += i
 return all_string
# Good
string = ['a','b','c','d','e','f','g,'h']
def fun(string):
 all_string = ''.join(string)
 return all_string

4.强大的zip()

它是Python的内建函数,zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个包含tuple的list。zip()函数可以在很多场景简化你的代码。

矩阵的行列互换


# Bad
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
re_a = [[row[col] for row in a] for col in range(len(a))]
>>> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
# Good
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
re_a = list(zip(*a))
>>> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

交换dict的键值


# Bad
a = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
def reverse_dict(a):
 new_dict = {}
 for k,v in m.items():
  new_dict[v] = k
 return new_dict
# Good
a = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
def reverse_dict(a):
 k = a.keys()
 v = a.values()
 new_dict = dict(zip(v, k))
 return new_dict

合并list相邻项


a = [1, 2, 3, 4, 5, 6]
list(zip( a[::2], a[1::2] ))
>>> [(1, 2), (3, 4), (5, 6)]

5.变量值交换


# Bad
tmp = a
a = b
b = tmp
#Good
a, b = b, a

6.在循环中获取索引(数组下标)?


a = [8, 23, 45, 12, 78]
for index, value in enumerate(a):
print(index , value)

7.如何在只用一行捕获多个异常?


try:
 pass
except (ExceptionA,ExceptionB,.....) as e:
 pass

8.把列表分割成同样大小的块?


a = [1, 2, 3, 4, 5, 6]
list(zip( *[iter(a)]*2 ))
>>> [(1, 2), (3, 4), (5, 6)]

9.如何查找列表中某个元素的下标?


a = ['a', 'b', 'c', 'd', 'e', 'f']
a_i = a.index(a)
>>> 0 

10.如何快速反转字符串?


#Bad
a = 'Python is a powerful languange.'
list_a = list(a)
list_a.reverse()
re_a = ''.join(list_a) 
#Good
a = 'Python is a powerful languange.'
re_a = a[::-1]
11.数值比较

x = 2
if 1< x <3:
 print(x)
>>> 2
if 1< x >0:
 print(x)
>>> 2

12.优雅的打开文件

平时在使用类似文件的流对象时,使用完毕后要调用close方法关闭。with…as语句提供了一个非常方便的替代方法:open打开文件后将返回的文件流对象赋值给f,然后在with语句块中使用。with语句块完毕之后,会隐藏地自动关闭文件。


with open('nothing.txt','r') as f:
 f.read()

13.和你的内存说再见

crash = dict(zip(range(10 **0xA), range(10 **0xA)))

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程网!

--结束END--

本文标题: 你所不知道的Python奇技淫巧13招【实用】

本文链接: https://www.lsjlt.com/news/13899.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 你可能不知道的typescript实用小技巧
    目录前言函数重载 映射类型 Partial, Readonly, Nullable, Required Pick, RecordExclude, Omit ReturnType 类型...
    99+
    2024-04-02
  • ASP 日志记录的秘密:你所不知道的技巧
    作为一名有经验的 ASP 开发人员,您可能已经熟悉了 ASP 日志记录的基础知识,知道如何记录错误消息并使用它们来调试您的应用程序。但是,您是否知道 ASP 日志记录还包含了许多鲜为人知的技巧,可以帮助您更有效地进行调试和故障排除? 1....
    99+
    2024-02-10
    ASP 日志记录 技巧 调试 故障排除
  • 你可能不知道的CSS技巧有哪些
    这篇文章给大家介绍你可能不知道的CSS技巧有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1.box-sizing:border-box 设置此属性后...
    99+
    2024-04-02
  • JavaScript和Python:你需要知道的开发技巧。
    JavaScript和Python:你需要知道的开发技巧 JavaScript和Python是两种广泛应用于Web开发、数据科学等领域的编程语言。这两种语言各自有其独特的特点和用途,但它们也有很多相似之处。在本文中,我们将介绍一些JavaS...
    99+
    2023-08-08
    apache npm javascript
  • Java IDE中的JavaScript开发:你需要知道的所有技巧和技术
    随着web应用程序的不断发展,JavaScript已经成为了最受欢迎的编程语言之一。作为一种既能用于客户端也能用于服务器端的语言,JavaScript已经成为了现代web应用程序的必备技能。如果你是一名Java开发人员,那么你可能已经知道...
    99+
    2023-06-17
    ide bash javascript
  • Unix 下的 Python 数组打包技巧,你知道吗?
    Python 是一种简单易用的编程语言,被广泛应用于数据分析、科学计算、Web 开发等领域。在 Python 中,数组是一种非常常见的数据结构,用于存储一组有序的数据。而数组打包则是一种常见的操作,它可以将多个数组合并成一个数组。 在 U...
    99+
    2023-11-02
    数组 unix 打包
  • Shell中使用Python数据类型的技巧,你知道吗?
    Shell是一种强大的命令行工具,常用于系统管理和自动化任务。而Python则是一种高级编程语言,具有强大的数据处理和计算能力。如果将两者结合起来,可以实现更加高效的任务处理和数据分析。在本文中,我们将介绍如何在Shell中使用Python...
    99+
    2023-10-13
    数据类型 打包 shell
  • 二维码编程算法:你需要知道的所有Java技巧
    二维码编程算法:你需要知道的所有Java技巧 二维码是一种快速、便捷、高效的信息识别方式。在我们的日常生活中,二维码已经被广泛应用于各个领域,例如支付、物流、文化传播等等。作为一名Java开发人员,了解二维码编程算法是非常重要的,因为Jav...
    99+
    2023-10-21
    npm 二维码 编程算法
  • 你所不知道的Java大数据实时教程!
    Java大数据实时处理是当前互联网行业的热门技术之一。随着互联网的快速发展,数据量也越来越大,传统的数据处理方式已经无法满足业务需求,实时数据处理成为了必须掌握的技能。本文将为大家介绍Java大数据实时处理的相关知识和实现方法,帮助大家更好...
    99+
    2023-10-22
    大数据 实时 教程
  • IDE 实时编辑和 ASP 重定向:你知道的所有技巧与窍门!
    在软件开发的过程中,IDE(Integrated Development Environment)是必不可少的工具。IDE 不仅提供了代码编写、调试、测试等基本功能,还提供了很多高级功能。其中,实时编辑是一项非常重要的功能,它可以帮助开发...
    99+
    2023-11-10
    重定向 ide 实时
  • 你需要知道的Python Git关键字加载技巧。
    Python和Git都是非常流行的开源工具,Python作为一种高级编程语言,被广泛应用于各种领域,Git则是一种分布式版本控制系统,用于管理软件开发中的源代码和版本控制。在使用Python和Git时,掌握一些关键字加载技巧可以大大提高效率...
    99+
    2023-09-18
    git load 关键字
  • 在Python中f-string的几个技巧,你都知道吗
    目录最基础用法自记录表达式多行f-string在f-string中格式化日期控制浮点数精度标准化显示宽度修改为左对齐设置科学计数法格式控制有效数字位数f-string想必很多Pyth...
    99+
    2024-04-02
  • JavaScript中的编程算法:有哪些你不知道的技巧?
    JavaScript是一门广泛应用于网页开发的编程语言。它可以用来实现各种功能,从简单的表单验证到复杂的交互式动画。在使用JavaScript开发时,编程算法是非常重要的一部分。在本篇文章中,我们将介绍一些你可能不知道的JavaScript...
    99+
    2023-08-12
    git 编程算法 javascript
  • 微信的这些不为人知的小技巧,你都知道哪些呢?
      随着科技的发展,手机在生活越来越重要,微信渐渐成为我们生活中沟通的重要媒介。现在很多的中老年人也开始使用微信了,但是微信上有很多功能,他们都不会使用,如果我们不在他们的身边,他们又想使用微信的话,那...
    99+
    2024-04-02
  • Java中NumPy的索引技巧:10个你不知道的窍门
    在数据分析和科学计算领域,NumPy是一款非常流行的Python库。然而,有些开发者可能不知道,在Java中也有一个NumPy库,它提供了与Python NumPy相似的功能和特性。本文将介绍Java NumPy的索引技巧,包括10个你可...
    99+
    2023-05-26
    numy numpy 索引
  • Windows平台下的Python编程,你知道实时开发的技巧吗?
    Python是一种流行的编程语言,它在Windows平台上得到了广泛的应用。在这篇文章中,我们将探讨如何使用Python进行实时开发,并分享一些实用的技巧和代码示例。 使用PyCharm进行调试 PyCharm是一款流行的Python...
    99+
    2023-07-09
    windows 教程 实时
  • 了解HTTP:你需要知道的基础知识和实践技巧
    HTTP(HyperText Transfer Protocol)是互联网上最基本、最重要的协议之一,它负责数据在网络中的传输。无论是浏览网页、发送电子邮件、下载文件等等,都需要用到HTTP协议。 在本文中,我们将介绍HTTP的基础知识和实...
    99+
    2023-11-12
    django http git
  • 你不知道的16条JavaScript调试技巧分别是什么
    你不知道的16条JavaScript调试技巧分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript调试是业内公认的难...
    99+
    2024-04-02
  • NPM包管理器的使用技巧,你必须知道!
    随着Node.js的流行,NPM(Node Package Manager)已经成为了前端和后端开发者必不可少的工具之一。NPM包管理器可以让开发者轻松地管理和安装依赖包,同时也提供了很多有用的功能和技巧,让我们来了解一下! 查找包 ...
    99+
    2023-09-03
    分布式 npm numy
  • 你知道吗?ASP IDE 接口存储的使用技巧!
    ASP IDE 接口存储的使用技巧 ASP(Active Server Pages)是一种基于服务器端脚本的动态网页技术,它可以生成动态的网页内容。在开发ASP网站时,我们通常会使用集成开发环境(IDE)来编写和调试代码。ASP IDE接口...
    99+
    2023-10-15
    ide 接口 存储
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作