refers to python tutorial
使用循环的一些技巧
- 当我们要循环一个序列(可迭代)的时候, 如果需要同时检索索引和对应的值, 我们可以用内置函数enumerate():
for i, item in enumerate(iterable): blablabla...
- 当我们要同时循环两个序列的时候, 可以用zip():
t1 = (1, 3, 5) t2 = (2, 4, 6) for item1, item2 in zip(t1, t2): blablalba...
- 要倒序的遍历一个序列时, 用reversed():
for i in reversed(xrange(1,10,2)): print i
- 要遍历一个有序的序列, 用sorted():
l = [1, 3, 3, 5] for item in sorted(set(l)): blablabla...
- 要同时遍历一个字典的键值对时, 用字典对象的iteritems():
d = {\'1\': \'a\', \'2\': \'b\', \'3\': \'c\'} for k, v in d.iteritems(d): blablabla...
- 最后一点建议, 如果想要在遍历过程中修改序列的值, 最好是建一个新序列, 以免误操作.
关于condition需要注意的:
- while和if语句里不止可以有比较符, 可以有任何的操作符. 这是python的一个特色, 也是我特别喜欢的一点, 非常简洁好用.
比如while或者if后接数字, 如果等于0, 就相当于假, 如果非零那就是真:a = 1 b = 2 if not a * 2 - b: print \'hello\'
如果接序列, 如果非空就代表真, 否则为假:
a = [1, 3] b = [] if a: blabla... if b: blabla...
- 比较符可以连着用:
if a < b == c: blabla...
这里先比较a
- 条件语句之间可以用and, or, not; 而不是&&, ||, !. 是不是非常的人性化, 非常的不反人类, 非常的readable. I love this design!!!
优先级是这样的: 比较符最高, not次之, and再次之, or最后.
比如: not a>b and c or d, 相当于((not (a>b)) and c) or d- and和or被称作是short-circuit操作符. 执行顺序是从左到右, 一旦得到确定值后面的逻辑运算就不做了.
比如: 1 or b or c
1已经已知了, 后面又接两个or操作符, 无论b和c是真是假最后结果都是真, 所以or b, or c两个运算就都不做了.
引用文档的一个例子:a = \'\' b = \'haha\' c = \'hehe\' d = a or b or c d >>> \'haha\'
- 条件语句之间可以用and, or, not; 而不是&&, ||, !. 是不是非常的人性化, 非常的不反人类, 非常的readable. I love this design!!!