python tip 2


以下是作为有Java背景的人阅读《Python基础教程》做得一些笔记。

区间比较

python支持类似数学上的区间比较

age = 22
0 < age < 100

列表比较

比较有趣的功能,免得自己写循环比较了

[1, 2, 3] < [1, 2, 4] # True
[1, [2, 3]] < [1, [2, 5]] # True

“三元表达式”

使用or或者之前python tip 1时候评论中提到的ifelse语句。

x = 'foo'
a = x or 'bar'
b = x if x else 'bar'

遍历字典

key和value一起遍历

d = {'a': 1, 'b': 2}
for k, v in d.items():
    print k, '=>', v

zip列表合并

个人学过haskell和scala,所以不是很陌生

a = [1, 2, 3]
b = ['a', 'b', 'c']
zip(a, b) #[(1, 'a'), (2, 'b'), (3, 'c')]

带序号的列表遍历

简单的方法是另外用一个i做计数,这个在Java里用加强for也是一样的,不过可以用python内建的enumerate方法

a = ['a', 'b', 'c']
for i, x in enumerate(a):
    print '#%d: %s' % (i, x)

for i, x in zip(xrange(len(a)), a):
    print '#%d: %s' % (i, x)

第二种方法其实是从haskell等函数式语言中学来的,带序号其实就是zipWithIndex,不过enumerate更简单

reload你的模块

在console中调试开发很有用

import mymodule
reload(mymodule)

显示函数的帮助信息

原先是module.method.__doc__看的,其实有内建函数可以直接看,在console中输入

help(zip)
help(enumerate)
help(xrange)

好了,以上就是今天学到的内容,其实多了解些python的特性还是听不错的。

,