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使用urllib2模块实现断点续传下载的方法
Jun 17 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
Python+Django搭建自己的blog网站
Mar 13 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
django fernet fields字段加密实践详解
Aug 12 Python
python socket 聊天室实例代码详解
Nov 14 Python
简单了解Python读取大文件代码实例
Dec 18 Python
python正则表达式实例代码
Mar 03 Python
python实现单张图像拼接与批量图片拼接
Mar 23 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 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
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
PHP实现合并discuz用户
2015/08/05 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
php处理复杂xml数据示例
2016/07/11 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
django Serializer序列化使用方法详解
2018/10/16 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
Python谱减法语音降噪实例
2019/12/18 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
调解协议书
2014/04/16 职场文书
中秋晚会策划方案
2014/06/12 职场文书
资产运营委托书范本
2014/10/16 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书