file:///F:/【2】Python 、机器学习/廖雪峰Python+Git+javascript教程离线版/wiki/python27/0013868200385680e8cf932dba9433ea367de9aba2b4784000.htm
## 迭代
for value1,value2 in ([[1,3],[111,33],[22222,36235]]):
print value1,value2
##################################
##列表生成式
print range(1,5)
print [x*2 for x in range(1,5)]
print [x*y for x in range(1,5) for y in range(1,5)]
print [x*x for x in range(1,13) if x%2 ==0]
import os
print [x for x in os.listdir(\'.\')]
##L = [\'Hello\', \'World\', 18, \'Apple\', None]
##print [s.lower for s in L if isinstance(s,str)]
##################################
##生成器 使用圆括号
print \'生成器\'
g = (x * x for x in range(10))
print g
##print g.next()
##print g.next()
##print g.next()
##print g.next()
##print g.next()
for n in g:
print n
print \'用生成器生成斐波那契数列\'
def fib(max):
n,a,b =0,0,1
while n<max:
yield b
a,b = b,a+b
n= n+1
for n in fib(8):
print n
##函数################################
print \'函数\'
def add(x,y,f):
return f(x)+f(y)
print add(4,-9,abs)
import math
print math.pi
## map reduce################################
print \'map reduce\'
print map(abs,[11,22,33,-222,2223,-655])
def str2int(s):
def fn(x,y):
return x*10+y
def char2num(s):
return {\'0\':0,\'1\':1,\'2\': 2, \'3\': 3, \'4\': 4, \'5\': 5, \'6\': 6, \'7\': 7, \'8\': 8, \'9\': 9}[s]
return reduce(fn,map(char2num,s))
print \'string to int\',str2int(\'123564253\')
##Python内建的filter()函数用于过滤序列################################
print \'filter\'
def is_odd(n):
return n % 2 == 1
print filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
## sorted 函数################################
print \'sorted\'
def reversed_cmp(x, y):
if x > y:
return -1
if x < y:
return 1
return 0
print sorted([36, 5, 12, 9, 21], reversed_cmp)
def cmp_ignore_case(s1, s2):
u1 = s1.upper()
u2 = s2.upper()
if u1 < u2:
return -1
if u1 > u2:
return 1
return 0
print sorted([\'bob\', \'about\', \'Zoo\', \'Credit\'], cmp_ignore_case)