我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【译】Python的优雅技巧

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【译】Python的优雅技巧

枚举

不要这么做:

i = 0 
for item in iterable: 
    print i, item 
    i += 1

而是这样:

for i, item in enumerate(iterable):
    print i, item

Enumerate可以接受第二个参数,例如:

>>> list(enumerate('abc')) 
[(0, 'a'), (1, 'b'), (2, 'c')] 

>>> list(enumerate('abc', 1)) 
[(1, 'a'), (2, 'b'), (3, 'c')]

字典/集合 解析

你可能知道列表解析,但不知道字典/集合解析。字典/集合解析简单而且高效,例如:

my_dict = {i: i * i for i in xrange(100)} 
my_set = {i * 15 for i in xrange(100)}
# There is only a difference of ':' in both

强制浮点数除法

如果我们除以一个整数,即使结果是一个浮点数,Python(2) 依旧会给我们一个整数。为了规避这个问题,我们需要这样做:

result = 1.0/2

但是现在有一种别的方法可以解决这个问题,甚至在之前我都没有意识到有这种方法存在。你可以进行如下操作:

from __future__ import division 
result = 1/2
# print(result)
# 0.5

需要注意的是这个窍门只适用于Python 2。在Python 3 中就不需要进行import 操作了,因为它已经默认进行import了。

简单的服务器

你想快速简单的分享目录下的文件吗?可以这样做:

# Python2
python -m SimpleHTTPServer

# Python 3
python3 -m http.server

这回启动一个服务器

Python表达式求值

我们都知道eval,但也许并不是所有人都知道literal_eval.可以这么做:

import ast 
my_list = ast.literal_eval(expr)

而不是这样:

expr = "[1, 2, 3]" 
my_list = eval(expr)

我相信对于大多数人来说这种形式是第一次看见,但是实际上这个在Python中已经存在很长时间了。

分析脚本

按下面的方式运行脚本,可以很简单的对其进行分析:

python -m cProfile my_script.py

对象自检

在Python中,可以通过dir()来检查对象,例如:

>>> foo = [1, 2, 3, 4]
>>> dir(foo) 
['__add__', '__class__', '__contains__', 
'__delattr__', '__delitem__', '__delslice__', ... , 
'extend', 'index', 'insert', 'pop', 'remove', 
'reverse', 'sort']

调试脚本

你可以使用pdb模块在脚本中设置断点来调试脚本,就像这样:

import pdb
pdb.set_trace()

你可以在脚本的任何地方加入pdb.set_trace(),该函数会在那个位置设置一个断点。超级方便。你应该多阅读pdb 函数的相关内容,因为在它里面还有很多鲜为人知的功能。

简化if结构

如果必须检查一些值,可以用

if n in [1,4,5,6]:

而不是用复杂的if结构:

if n==1 or n==4 or n==5 or n==6:

字符串/数列 逆序

下面的方式可以快速反转一个列表:

>>> a = [1,2,3,4]
>>> a[::-1]
[4, 3, 2, 1]

# This creates a new reversed list. 
# If you want to reverse a list in place you can do:

a.reverse()

这种方式同样适用于字符串:

>>> foo = "yasoob"
>>> foo[::-1]
'boosay'

优雅地打印

下面的方式可以用优雅的方式打印字典和列表:

from pprint import pprint 
pprint(my_dict)

这用于字典打印是非常高效的,如果你想从文件中快速优雅的打印出json,可以这样做:

cat file.json | python -m json.tools

三元运算

三元运算是if-else 语句的快捷操作,也被称为条件运算。这里有几个例子可以供你参考:

[on_true] if [expression] else [on_false]
x, y = 50, 25
small = x if x < y else y

译文出处:http://www.ido321.com/1576.html

本文根据@Nicolas Bevacqua的《nifty-python-tricks》所译,整个译文带有我自己的理解与思想,如果译得不好或有不对之处还请同行朋友指点。如需转载此译文,需注明英文出处:https://freepythontips.wordpress.com/2015/04/19/nifty-python-tricks/。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【译】Python的优雅技巧

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

下载Word文档

猜你喜欢

【译】Python的优雅技巧

枚举不要这么做:i = 0 for item in iterable: print i, item i += 1而是这样:for i, item in enumerate(iterable): print i, ite
2023-01-31

Golang优雅替换空格的技巧

Golang是一种开源的编程语言,它具有简洁、高效和强大的特点,因此越来越受到广大开发者的喜爱。在实际的开发过程中,我们经常会遇到需要处理字符串的情况,其中替换空格是一个比较常见的需求。本文将介绍一些Golang中优雅替换空格的技巧,并提供
Golang优雅替换空格的技巧
2024-03-12

Golang编译优化技巧分享

Golang编译优化技巧分享 为了提高Golang程序的性能和效率,优化编译过程是至关重要的。本文将分享一些Golang编译的优化技巧,并提供具体的代码示例供读者参考。一、使用编译器优化标志Golang编译器提供了一系列优化标志,通过
Golang编译优化技巧分享
2024-03-07

JavaScript代码优雅,简洁的编写技巧总结

专业开发人员将为未来的自己和“其他人”编写代码,而不仅仅只编写当前能工作就行的代码。在此基础上,简洁代码可以定义为自解释的、易于人理解的、易于更改或扩展的代码。以下列表一些好编写方式,仅供参考
2022-11-13

Python优化提速的小技巧

本篇内容介绍了“Python优化提速的小技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 是一种脚本语言,相比 C/C++ 这
2023-06-15

PyCharm技巧:优雅处理代码自动换行问题

PyCharm技巧:优雅处理代码自动换行问题在使用PyCharm进行Python编程的过程中,经常会遇到代码自动换行的问题,特别是当一行代码过长时,自动换行可能会影响代码的可读性和美观性。如何优雅地处理这个问题,让代码更加整洁和易读呢?本
PyCharm技巧:优雅处理代码自动换行问题
2024-02-23

PHP 错误处理高级技巧:让你的代码更优雅

PHP错误处理的高级技巧可以帮助你编写更优雅、更易维护的代码。本文将介绍一些有用的错误处理技巧,包括自定义错误处理函数、错误日志记录、异常处理以及错误类型提示。
PHP 错误处理高级技巧:让你的代码更优雅
2024-02-06

PHP 异常处理的进阶技巧:让你的代码更优雅!

PHP 异常处理是处理意外情况的有效工具,通过各种方法可以帮助开发者更优雅地处理异常,提高代码的可靠性和可读性。
PHP 异常处理的进阶技巧:让你的代码更优雅!
2024-02-24

Python优秀技巧有哪些

这篇文章主要介绍“Python优秀技巧有哪些”,在日常操作中,相信很多人在Python优秀技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python优秀技巧有哪些”的疑惑有所帮助!接下来,请跟着小编
2023-06-16

Python 代码优化技巧(一)

分享最近看到的关于代码优化的一些技巧。if 判断的短路特性对于and,应该把满足条件少的放在前面,这样当对于大量判断时, 满足条件少的情况直接回导致其后其他表达式不会计算从而节约时间(因为 False and True 还是 False)i
2023-01-31

如何优雅使用Docker?请收下这15个小技巧。

Tip1获取最近运行容器的id 这是我们经常会用到的一个操作,按照官方示例,你可以这样做(环境ubuntu):这种方式在编写脚本的时候很有用,比如你想在脚本中批量获取id,然后进一步操作。但是这种方式要求你必须给ID赋值,如果是直接敲命令,
2023-06-02

PHP Class用法技巧大揭秘:让你的代码更加优雅

PHP Class用法技巧大揭秘:让你的代码更加优雅在PHP编程中,Class的使用是非常重要的一环。通过合理地运用Class,可以使代码更加清晰、模块化、可维护性更高。在本文中,我们将揭秘一些高级的PHP Class用法技巧,帮助你提升
PHP Class用法技巧大揭秘:让你的代码更加优雅
2024-03-09

PHP Laravel框架开发技巧分享:让你的代码更优雅

本文将分享一些PHP Laravel框架开发技巧,帮助你编写出更优雅、更易维护的代码。这些技巧包括使用命名空间、依赖注入、Eloquent ORM、Blade模板引擎等。
PHP Laravel框架开发技巧分享:让你的代码更优雅
2024-02-06

优雅编程实践:Go语言去除else技巧解读

优雅编程实践:Go语言去除else技巧解读在软件开发中,编写优雅的代码是每个程序员追求的目标之一。而在编程实践中,有时候我们会发现一些技巧可以帮助我们简化代码逻辑,使代码更加简洁和易读。本文将介绍一种在Go语言中常用的技巧:去除else。
优雅编程实践:Go语言去除else技巧解读
2024-03-13

VUE 模板语法技巧大揭秘,让你的代码更优雅

Vue.js 的模板语法功能强大,可以让开发人员轻松创建动态交互的 UI 界面。通过掌握一些技巧,可以使 Vue.js 模板代码更优雅、更易读。本文将介绍一些实用的 Vue.js 模板语法技巧,帮助开发人员提升编码水平。
VUE 模板语法技巧大揭秘,让你的代码更优雅
2024-02-10

Python 性能优化技巧总结

1.使用测量工具,量化性能才能改进性能,常用的timeit和memory_profiler,此外还有profile、cProfile、hotshot等,memory_profiler用了psutil,所以不能跟踪cpython的扩展; 2.
2022-06-04

Python 代码性能优化技巧

1. Vim2. Eclipse with PyDev3. Sublime Text4. Emacs5. Komodo Edit6. PyCharm7. Wing8. PyScripter9. The Eric Python IDE10. 
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录