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中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
python多进程实现文件下载传输功能
Jul 28 Python
Python编程中类与类的关系详解
Aug 08 Python
如何定义TensorFlow输入节点
Jan 23 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
最新pycharm安装教程
Nov 18 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
python通配符之glob模块的使用详解
Apr 24 Python
python和anaconda的区别
May 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
正则表达式语法
2006/10/09 Javascript
php adodb操作mysql数据库
2009/03/19 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
Bootstrap精简教程
2015/11/27 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
itchat接口使用示例
2017/10/23 Python
python交换两个变量的值方法
2019/01/12 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
python开头的coding设置方法
2019/08/08 Python
python中必要的名词解释
2019/11/20 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
写自荐信的七个技巧
2013/10/15 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
工作推荐信范文
2014/05/10 职场文书
新兵入伍心得体会
2014/09/04 职场文书
企业授权委托书范本
2014/09/22 职场文书
李强感恩观后感
2015/06/17 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技
Springboot中如何自动转JSON输出
2022/06/16 Java/Android