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正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
详解django中使用定时任务的方法
Sep 27 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 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/03/05 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
js实现简单计算器
2015/11/22 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
tensorflow实现简单的卷积网络
2018/05/24 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python实现猜拳小游戏
2020/04/05 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
前台接待员岗位职责
2014/01/02 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
大学生村官演讲稿
2014/04/25 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书