交换变量

1
2
3
4
5
6
7
8
9
x = 6
y = 5
x, y = y, x
print x
>>> 5
print y
>>> 6

if 语句在行内

1
2
print "Hello" if True else "World"
>>> Hello

连接

下面的最后一种方式在绑定两个不同类型的对象时显得很cool。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

数字技巧

1
2
3
4
5
6
#除后向下取整
print 5.0//2
>>> 2
# 2的5次方
print 2**5
>> 32

注意浮点数的除法

1
2
3
4
print .3/.1
>>> 2.9999999999999996
print .3//.1
>>> 2.0

数值比较

这是我见过诸多语言中很少有的如此棒的简便法

1
2
3
4
5
6
7
x = 2
if 3 > x > 1:
   print x
>>> 2
if 1 < x > 0:
   print x
>>> 2

同时迭代两个列表

1
2
3
4
5
6
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
     print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots

带索引的列表迭代

1
2
3
4
5
6
7
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
    print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots

列表推导式

已知一个列表,我们可以刷选出偶数列表方法:

1
2
3
4
5
numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
    if number%2 == 0:
        even.append(number)

转变成如下:

1
2
numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]

是不是很牛呢,哈哈。

字典推导

和列表推导类似,字典可以做同样的工作:

1
2
3
teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}

初始化列表的值

1
2
3
items = [0]*3
print items
>>> [0,0,0]

列表转换为字符串

1
2
3
teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> 'Packers, 49ers, Ravens, Patriots'

从字典中获取元素

我承认try/except代码并不雅致,不过这里有一种简单方法,尝试在字典中查找key,如果没有找到对应的alue将用第二个参数设为其变量值。

1
2
3
4
5
data = {'user': 1, 'name': 'Max', 'three': 4}
try:
   is_admin = data['admin']
except KeyError:
   is_admin = False

1
替换诚这样:
1
2
data = {'user': 1, 'name': 'Max', 'three': 4}
is_admin = data.get('admin', False)

获取列表的子集

有时,你只需要列表中的部分元素,这里是一些获取列表子集的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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]

60个字符解决FizzBuzz

前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

这里就是一个简短的,有意思的方法解决这个问题:

1
for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x

集合

除了python内置的数据类型外,在collection模块同样还包括一些特别的用例,在有些场合Counter非常实用。如果你参加过在这一年的Facebook HackerCup,你甚至也能找到他的实用之处。

1
2
3
from collections import Counter
print Counter("hello")
>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})

迭代工具

和collections库一样,还有一个库叫itertools,对某些问题真能高效地解决。其中一个用例是查找所有组合,他能告诉你在一个组中元素的所有不能的组合方式

1
2
3
4
5
6
7
8
9
10
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')

False == True

比起实用技术来说这是一个很有趣的事,在python中,True和False是全局变量,因此:

1
2
3
4
5
6
False = True
if False:
   print "Hello"
else:
   print "World"
>>> Hello

如果你还有任何很酷的技巧,可以在下面留言,感谢阅读。

转载于:https://www.cnblogs.com/changzhi/archive/2013/02/27/2935249.html

python小技巧(初学者适用)相关推荐

  1. 收藏喜+1!值得使用的100个Python小技巧

    目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...

  2. 快收藏!整理了 100 个 Python 小技巧

    作者:小F 来源: 法纳斯特 目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习. ...

  3. python hist函数_虎哥的python小技巧放送之绘制统计图(2)

    先放出第一期让大家回顾一下上次的内容 虎哥的python小技巧放送之绘制统计图(1) 第一期主要给大家讲了一些图形设置的东西.这一次开始正式带大家画图~ 折线图:折线图可以通过matplotlib中的 ...

  4. 3分钟学会python_3分钟学会一个Python小技巧

    Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串. datetime 分别提供了两个方法 strp ...

  5. 一些你可能不知道的 Python 小技巧!

    [CSDN 编者按]Python 风头正盛,未来一段时间内想必也会是热门编程语言之一.因此,熟练掌握 Python 对开发者来说极其重要,说不定能给作为开发者的你带来意想不到的财富. 作者 | Seb ...

  6. python小技巧:一步步教你用Python实现

    python小技巧:一步步教你用Python实现2048小游戏 https://www.meipian.cn/2xywlpbv https://www.meipian.cn/2xywhexo http ...

  7. 不藏了!分享100个Python小技巧!!

    目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...

  8. 惊了惊了,三分钟学会七个Python小技巧(建议收藏)

    前言 有很多小可爱再入门的路上越走越远......这次分享一下简单的小技巧重新让你爱上Python啦. Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就 是不断 ...

  9. Python小技巧:富比较方法的妙用,__lt__、__le__、__eq__、__ne__、__gt__、__ge__。。。

    前言 这里是Python小技巧的系列文章.这是第二篇,富比较方法的妙用. 在 Python中,富比较方法共6个,如下表所示: 见名知意,富比较主要用于比较. 富比较方法 使用 释义 释义 object ...

  10. 100个Python小技巧!帮你节省很多头发

    目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手.你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等. ...

最新文章

  1. 剑指offer:合并两个排序的链表 python实现 合并K个排序的链表
  2. Hyper-V内存获取模式 内存权重
  3. SVM分类器原理详解
  4. 1353. 滑雪场设计【难度: 一般 / 知识点: 枚举 贪心】
  5. kepler架构GPU新特性--HyperQ
  6. jQuery UI - Accordion 手风琴组件的使用
  7. 解决xp登陆域很慢的方法
  8. 常见数据结构与算法整理总结(下)
  9. SAP License:值字段更改注意事项
  10. OPENGL 点击与选取的基础---坐标变换
  11. python中关于集合的基础运用
  12. 使用Jflash给华大半导体的MCU烧录程序
  13. 新文件泄露更多NSA卫星监听站的信息
  14. 恶意抢注商标的认定标准是什么?商标被抢注怎么解决?
  15. 山西大同大学计算机考试打印准考证
  16. 工业B2B电商平台整合延伸工业供应链上下游,打造产业链闭环
  17. 如何修改服务器BMC密码,C2100服务器BMC卡固件升级失败和密码重置问题
  18. Python(4)print一个10行10列的星星图案
  19. 【学习打卡02】可解释机器学习笔记之ZFNet
  20. 用户画像无头绪?手把手教你RFM模型

热门文章

  1. 苹果 AppStore 财年和账单那些趣事
  2. 安卓java模拟器按键精灵,安卓按键精灵实现后台
  3. 短信接口哪家好 凌凯短信接口
  4. win10 字体 变得模糊 有锯齿
  5. 计算机组成原理第五版(白中英)第八章输入输出系统 习题
  6. java pdf 阅读器_纯Java文档阅读器(word、pdf等)
  7. matable的作用
  8. 系统动力学建模代做,vensim建模代做,流图建模,不确定分析。
  9. 笑傲江湖与三层交换、路由......
  10. tiledmap 图块属性_TiledMap地图使用