下面我挑选出的这几个技巧常常会被人们忽略,但它们在日常编程中能真正的给我们带来不少帮助。

1. 字典推导(Dictionary comprehensions)和集合推导(Set comprehensions)

大多数的Python程序员都知道且使用过列表推导(list comprehensions)。如果你对list comprehensions概念不是很熟悉——一个list comprehension就是一个更简短、简洁的创建一个list的方法。

?

自从python 3.1 (甚至是Python 2.7)起,我们可以用同样的语法来创建集合和字典表:

?

在第一个例子里,我们以some_list为基础,创建了一个具有不重复元素的集合,而且集合里只包含偶数。而在字典表的例子里,我们创建了一个key是不重复的1到10之间的整数,value是布尔型,用来指示key是否是偶数。

这里另外一个值得注意的事情是集合的字面量表示法。我们可以简单的用这种方法创建一个集合:

?

而不需要使用内置函数set()。

2. 计数时使用Counter计数对象

这听起来显而易见,但经常被人忘记。对于大多数程序员来说,数一个东西是一项很常见的任务,而且在大多数情况下并不是很有挑战性的事情——这里有几种方法能更简单的完成这种任务。

Python的collections类库里有个内置的dict类的子类,是专门来干这种事情的:

?

3. 漂亮的打印出JSON

JSON是一种非常好的数据序列化的形式,被如今的各种API和web service大量的使用。使用python内置的json处理,可以使JSON串具有一定的可读性,但当遇到大型数据时,它表现成一个很长的、连续的一行时,人的肉眼就很难观看了。

为了能让JSON数据表现的更友好,我们可以使用indent参数来输出漂亮的JSON。当在控制台交互式编程或做日志时,这尤其有用:

?

同样,使用内置的pprint模块,也可以让其它任何东西打印输出的更漂亮。

4. 创建一次性的、快速的小型web服务

有时候,我们需要在两台机器或服务之间做一些简便的、很基础的RPC之类的交互。我们希望用一种简单的方式使用B程序调用A程序里的一个方法——有时是在另一台机器上。仅内部使用。

我并不鼓励将这里介绍的方法用在非内部的、一次性的编程中。我们可以使用一种叫做XML-RPC的协议 (相对应的是这个Python库),来做这种事情。

下面是一个使用SimpleXMLRPCServer模块建立一个快速的小的文件读取服务器的例子:

?

客户端

?

我们这样就得到了一个远程文件读取工具,没有外部的依赖,只有几句代码(当然,没有任何安全措施,所以只可以在家里这样做)。

5. Python神奇的开源社区

这里我提到的几个东西都是Python标准库里的,如果你安装了Python,你就已经可以这样使用了。而对于很多其它类型的任务,这里有大量的社区维护的第三方库可供你使用。

下面这个清单是我认为的好用且健壮的开源库的必备条件:

好的开源库必须…

包含一个很清楚的许可声明,能适用于你的使用场景。

开发和维护工作很活跃(或,你能参与开发维护它。)

能够简单的使用pip安装或反复部署。

有测试套件,具有足够的测试覆盖率。

如果你发现一个好的程序库,符合你的要求,不要不好意思——大部分的开源项目都欢迎捐赠代码和欢迎提供帮助——即使你不是一个Python高手。

以上就是python 5个实用的技巧的详细内容,更多关于python 实用技巧的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/shsxt/p/10460081.html

python实用宝典_python 5个实用的技巧相关推荐

  1. python功能分享_Python中非常实用的一些功能和函数分享

    在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性.一些可以说是非常有用,但却没有充分利用.考虑到这一点,我编辑了一些你应该了解的Python功能特色. 带任意数量参数的函数你可能 ...

  2. python 小说数据挖掘_Python 中的实用数据挖掘

    第三步:数据转换为向量 现在,我们将每条消息(词干列表)转换成机器学习模型可以理解的向量. 用词袋模型完成这项工作需要三个步骤: 1. 对每个词在每条信息中出现的次数进行计数(词频): 2. 对计数进 ...

  3. python简单实用案例_Python 21 Django 实用小案例1

    8 9 10 {% csrf_token %}11 用户名: 12 密码: 13 验证码: 14 15 16 17

  4. python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典...

    完成下面这个有趣的实验,你所需要的东西有: 1.路由器(能够形成局域网,且电脑已用网线连接) 2.一个智能音箱(本教程使用的是亚马逊 Echo Dot 2) 3.主板支持wake on lan (大部 ...

  5. 用python画雪花 科赫曲线递归_python 画雪花 —科赫曲线的实现-Python 实用宝典

    漂亮的科赫曲线 科赫曲线是一种分形,其形态非常像雪花,因此又被称作科赫雪花.雪花曲线. 下面是用python的turtle包让我们来实时画一个如上图所示的雪花. import turtle def k ...

  6. python语音控制手机_python 树莓派语音控制普通台灯教程-Python 实用宝典

    阅读这篇文章前,这两篇文章可能对你会有所帮助: 利用智能音箱语音控制电脑开关机 (必读,否则你可能不知道我在说什么) 先看看效果: 完成这项有趣的实验,你所需要的材料有: 1.电烙铁 2.一个8050 ...

  7. python用excel数据做热力图_7行代码 Python热力图可视化分析缺失数据处理-Python 实用宝典...

    Python热力图寻找缺失数据 你有没有遇到一种情况,处理一张很大的csv表格的时候很难找到表格中每一列的缺失数据,或者说处理速度非常慢 ?当然如果你的Excel水平非常高,这个可能不会成为你的问题, ...

  8. Python培训教程分享:“高效实用” 的Python工具库

    作为一名合格Python技术员,对于Python工具库的使用是少不了的,本期Python培训教程就为大家分享的是""高效实用" 的Python工具库",希望能够 ...

  9. Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  10. 《VMware虚拟机实用宝典》繁体中文版封面

    虽然知道<VMware虚拟机实用宝典>由博硕公司出了繁体中文版,但一直没有见到样书,也没有见到图书的封面.今天一位编辑发给我链接页,看了一下,不错.记录一下. <深入淺出虛擬化技術V ...

最新文章

  1. 线程池配置合理线程数?
  2. redhat6.4 安装oracle 10g error
  3. java-HashMap默认机制
  4. C Tricks(十四)—— 余数
  5. 第114天:Ajax跨域请求解决方法(二)
  6. docker 镜像源_前端 Docker 镜像体积优化
  7. 计算机组成第五章课后答案,计算机组成原理第五章答案.doc
  8. Vensim软件中文介绍
  9. js实现页面视频全屏播放
  10. APP性能测试——内存测试
  11. 全国高校计算机能力挑战赛赛事通知
  12. APM_Rover运行纲领分析,以pixhawk-fmuv2为硬件平台,ChibiOS为底层操作系统:
  13. TexturePacker 3.0 使用教程
  14. 拼多多api接口数据说明
  15. 字节跳动-后端开发岗最新春招面经分享,四面拿下,有惊无险
  16. e2e 测试 出现的错误
  17. 王道考研计算机网络学习心得——第一章-计算机网络体系结构
  18. 二维列表python
  19. 你以为我在玩游戏,其实我在学编程,这一波我在大气层
  20. 自助建站系统哪个好?

热门文章

  1. 【印刷字符识别】基于matlab OCR印刷字母+数字识别【含Matlab源码 287期】
  2. 【优化算法】人工蜂鸟优化算法(AHA)【含Matlab源码 1470期】
  3. 【DCTWVRP】基于matlab遗传算法求解带容量+距离+时间窗的车辆路径规划问题【含Matlab源码 1211期】
  4. 【气动学】基于matlab GUI外弹道仿真系统【含Matlab源码 1044期】
  5. SPSS问卷中的人口学变量是否要用?以及如何选用?【SPSS 065期】
  6. 已知表t est(name)的记录如下, tom tom_green tomly lily 代码select * from test where name rlike ‘tom.*‘的结果有几条记录
  7. html4与java混编,JavaWeb04-HTML篇笔记(四)
  8. Sublime Text3:解决win10输入法输入框不跟随问题
  9. fatal error: libmemcached/memcached.h: No such file or directory
  10. 例2.1 排序 - 九度教程第1题(排序)