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发送SMTP邮件的教程
Apr 29 Python
利用python发送和接收邮件
Sep 27 Python
python 日志增量抓取实现方法
Apr 28 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
django 自定义过滤器的实现
Feb 26 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
教你怎么用python爬取爱奇艺热门电影
May 20 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实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
php中动态修改ini配置
2014/10/14 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
经典大学生求职信范文
2014/01/06 职场文书
学生打架检讨书
2014/02/14 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
2015年公司新年寄语
2014/12/08 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
关于教师节的广播稿
2015/08/19 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript
python 网络编程要点总结
2021/06/18 Python
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
详解Python中__new__方法的作用
2022/03/31 Python