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\'