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)