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解析XML的几种常见方法的介绍
Apr 09 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
python基于multiprocessing的多进程创建方法
Jun 04 Python
python获取文件扩展名的方法
Jul 06 Python
Python中常用操作字符串的函数与方法总结
Feb 04 Python
Python实现网络端口转发和重定向的方法
Sep 19 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
Python将图片转换为字符画的方法
Jun 16 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 Python
详解Python3定时器任务代码
Sep 23 Python
python 绘制场景热力图的示例
Sep 23 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
使用php4加速网络传输
2006/10/09 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
Python set常用操作函数集锦
2017/11/15 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
使用Python发现隐藏的wifi
2020/03/04 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
Weblogic的布署方式
2013/08/23 面试题
老总助理工作岗位职责
2014/02/06 职场文书
什么是就业协议书
2014/04/17 职场文书
广播节目策划方案
2014/05/23 职场文书
村创先争优活动总结
2014/08/28 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle