枚举
不要这么做:
1 2 3 4 |
i = 0 for item in iterable: print i, item i += 1 |
而是这样:
1 2 |
for i, item in enumerate(iterable): print i, item |
Enumerate可以接受第二个参数,例如:
1 2 3 4 5 |
>>> list(enumerate('abc')) [(0, 'a'), (1, 'b'), (2, 'c')] >>> list(enumerate('abc', 1)) [(1, 'a'), (2, 'b'), (3, 'c')] |
字典/集合 解析
你可能知道列表解析,但不知道字典/集合解析。字典/集合解析简单而且高效,例如:
1 2 3 |
my_dict = {i: i * i for i in xrange(100)} my_set = {i * 15 for i in xrange(100)} # There is only a difference of ':' in both |
强制浮点数除法
如果我们除以一个整数,即使结果是一个浮点数,Python(2) 依旧会给我们一个整数。为了规避这个问题,我们需要这样做:
1 |
result = 1.0/2 |
但是现在有一种别的方法可以解决这个问题,甚至在之前我都没有意识到有这种方法存在。你可以进行如下操作:
1 2 3 4 |
from __future__ import division result = 1/2 # print(result) # 0.5 |
需要注意的是这个窍门只适用于Python 2。在Python 3 中就不需要进行import 操作了,因为它已经默认进行import了。
简单的服务器
你想快速简单的分享目录下的文件吗?可以这样做:
1 2 3 4 5 |
# Python2 python -m SimpleHTTPServer # Python 3 python3 -m http.server |
这回启动一个服务器
简单的服务器
我们都知道eval
,但也许并不是所有人都知道literal_eval
.可以这么做:
1 2 |
import ast my_list = ast.literal_eval(expr) |
而不是这样:
1 2 |
ettings=" minimize scroll-always" style=" margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important;">
而是这样:
Enumerate可以接受第二个参数,例如:
字典/集合 解析你可能知道列表解析,但不知道字典/集合解析。字典/集合解析简单而且高效,例如:
强制浮点数除法如果我们除以一个整数,即使结果是一个浮点数,Python(2) 依旧会给我们一个整数。为了规避这个问题,我们需要这样做:
但是现在有一种别的方法可以解决这个问题,甚至在之前我都没有意识到有这种方法存在。你可以进行如下操作:
需要注意的是这个窍门只适用于Python 2。在Python 3 中就不需要进行import 操作了,因为它已经默认进行import了。 简单的服务器你想快速简单的分享目录下的文件吗?可以这样做:
这回启动一个服务器 简单的服务器我们都知道
而不是这样:
|