17个Python小技巧分享


Posted in Python onJanuary 23, 2015

1.交换变量

x = 6

y = 5
x, y = y, x
print x

>>> 5

print y

>>> 6

2.if 语句在行内

print "Hello" if True else "World"

>>> Hello

3.连接

下面的最后一种方式在绑定两个不同类型的对象时显得很酷。

nfc = ["Packers", "49ers"]

afc = ["Ravens", "Patriots"]

print nfc + afc

>>> ['Packers', '49ers', 'Ravens', 'Patriots']
print str(1) + " world"

>>> 1 world
print `1` + " world"

>>> 1 world
print 1, "world"

>>> 1 world

print nfc, 1

>>> ['Packers', '49ers'] 1

4.计算技巧

#向下取整

print 5.0//2

>>> 2

# 2的5次方

print 2**5

>> 32

注意浮点数的除法

print .3/.1

>>> 2.9999999999999996

print .3//.1

>>> 2.0

5.数值比较

x = 2

if 3 > x > 1:

   print x

>>> 2

if 1 < x > 0:

   print x

>>> 2

6.两个列表同时迭代

nfc = ["Packers", "49ers"]

afc = ["Ravens", "Patriots"]

for teama, teamb in zip(nfc, afc):

     print teama + " vs. " + teamb

>>> Packers vs. Ravens

>>> 49ers vs. Patriots

7.带索引的列表迭代

teams = ["Packers", "49ers", "Ravens", "Patriots"]

for index, team in enumerate(teams):

    print index, team

>>> 0 Packers

>>> 1 49ers

>>> 2 Ravens

>>> 3 Patriots

8.列表推导

已知一个列表,刷选出偶数列表方法:

numbers = [1,2,3,4,5,6]

even = []

for number in numbers:

    if number%2 == 0:

        even.append(number)

用下面的代替

numbers = [1,2,3,4,5,6]

even = [number for number in numbers if number%2 == 0]

9.字典推导

teams = ["Packers", "49ers", "Ravens", "Patriots"]

print {key: value for value, key in enumerate(teams)}

>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}

10.初始化列表的值

items = [0]*3

print items

>>> [0,0,0]

11.将列表转换成字符串

teams = ["Packers", "49ers", "Ravens", "Patriots"]

print ", ".join(teams)

>>> 'Packers, 49ers, Ravens, Patriots'

12.从字典中获取元素

不要用下列的方式

data = {'user': 1, 'name': 'Max', 'three': 4}
try:
   is_admin = data['admin']
except KeyError:
   is_admin = False
替换为

data = {'user': 1, 'name': 'Max', 'three': 4}

is_admin = data.get('admin', False)

13.获取子列表

x = [1,2,3,4,5,6]

#前3个

print x[:3]

>>> [1,2,3]

#中间4个

print x[1:5]

>>> [2,3,4,5]

#最后3个

print x[-3:]

>>> [4,5,6]

#奇数项

print x[::2]

>>> [1,3,5]

#偶数项

print x[1::2]

>>> [2,4,6]

14.60个字符解决FizzBuzz

前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
这里有一个简短的方法解决这个问题:

for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x

15.集合

用到Counter库

from collections import Counter

print Counter("hello")

>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})

16.迭代工具

和collections库一样,还有一个库叫itertools

from itertools import combinations

teams = ["Packers", "49ers", "Ravens", "Patriots"]

for game in combinations(teams, 2):

    print game

>>> ('Packers', '49ers')

>>> ('Packers', 'Ravens')

>>> ('Packers', 'Patriots')

>>> ('49ers', 'Ravens')

>>> ('49ers', 'Patriots')

>>> ('Ravens', 'Patriots')

17.False == True

在python中,True和False是全局变量,因此:

False = True

if False:

   print "Hello"

else:

   print "World"

>>> Hello

以上就是个人总结的一些常用的Pyton小技巧,比较适合初学者,希望大家能够喜欢。

Python 相关文章推荐
Python中装饰器的一个妙用
Feb 08 Python
浅谈django model的get和filter方法的区别(必看篇)
May 23 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
使用TensorFlow实现SVM
Sep 06 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
python编程的核心知识点总结
Feb 08 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 Python
Windows8下安装Python的BeautifulSoup
Jan 22 #Python
Python实现抓取百度搜索结果页的网站标题信息
Jan 22 #Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 #Python
Python实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 #Python
python中实现php的var_dump函数功能
Jan 21 #Python
Python实现获取网站PR及百度权重
Jan 21 #Python
Python实现抓取页面上链接的简单爬虫分享
Jan 21 #Python
You might like
PHP 登录记住密码实现思路
2013/05/07 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
node中IO以及定时器优先级详解
2019/05/10 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python获取当前路径实现代码
2017/05/08 Python
解读python如何实现决策树算法
2018/10/11 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
歌唱比赛获奖感言
2014/01/21 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
先进个人评语大全
2015/01/04 职场文书
售票员岗位职责
2015/02/15 职场文书
总经理岗位职责范本
2015/04/01 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android