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 相关文章推荐
Web服务器框架 Tornado简介
Jul 16 Python
python实现根据窗口标题调用窗口的方法
Mar 13 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Python数据类型详解(四)字典:dict
May 12 Python
Python编程实现的简单Web服务器示例
Jun 22 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
Python之pymysql的使用小结
Jul 01 Python
python 读取更新中的log 或其它文本方式
Dec 24 Python
python随机模块random使用方法详解
Feb 14 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
python 使用建议与技巧分享(四)
Aug 18 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
drupal 代码实现URL重写
2011/05/04 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
php实现算术验证码功能
2018/12/05 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
用Python编写简单的微博爬虫
2016/03/04 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python实现扫描日志关键字的示例
2018/04/28 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
《小松树和大松树》教学反思
2014/02/20 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
财务管理制度范本
2015/08/04 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
公司周年庆寄语
2019/06/21 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书