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生成随机验证码(中文验证码)示例
Apr 03 Python
整理Python中的赋值运算符
May 13 Python
python实现分页效果
Oct 25 Python
Python离线安装PIL 模块的方法
Jan 08 Python
用Python实现大文本文件切割的方法
Jan 12 Python
django admin组件使用方法详解
Jul 19 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
python文件读写代码实例
Oct 21 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
Feb 29 Python
如何使用Python调整图像大小
Sep 26 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
Vue实现手机计算器
2020/08/17 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
python处理PHP数组文本文件实例
2014/09/18 Python
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
Numpy掩码式数组详解
2018/04/17 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
秘书英文求职信
2014/04/16 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
服务宗旨标语
2014/07/01 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript