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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
Python常见异常分类与处理方法
Jun 04 Python
python实现excel读写数据
Mar 02 Python
python遍历小写英文字母的方法
Jan 02 Python
将pip源更换到国内镜像的详细步骤
Apr 07 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 Python
详解python内置模块urllib
Sep 09 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
Django限制API访问频率常用方法解析
Oct 12 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定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
详解YII关联查询
2016/01/10 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
python实现多线程的两种方式
2016/05/22 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
python如何实现递归转非递归
2021/02/25 Python
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
委托书范本
2014/04/02 职场文书
致共产党员倡议书
2014/04/16 职场文书
医院护士工作检讨书
2014/10/26 职场文书
单方投资意向书
2015/05/11 职场文书
警示教育观后感
2015/06/17 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
小学大队委竞选口号
2015/12/25 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android
delete in子查询不走索引问题分析
2022/07/07 MySQL