raw_input && input
raw_input 将所有输入都计做字符串,input会把输入的表达式的值计算出来
list && tuple
list = [‘a’,5,c] 可执行append,pop操作等
tuple = (“kkk”,”dddd”) 常量集合,不可变
if,else,elif
elif=else if
dict && set
dict ={“aaa”:25,”banana”:88,”cap”:99}
key值对应value值,key值唯一不重复
添加/修改方法:dict[“key”]=value
删除方法,是否在dict内自己查
set=([1,2,3])
set是一个无重复元素的集合,相互之间可以做交(&)并(|)等计算
函数
def function(参数):
return
注意:参数可以带默认值(c++),可以是可变参数,*key是可变参数的意思,*key意味着传入的多个参数将以一个tuple的形式传入函数内, **key是关键字参数的意思,允许你传入若干个带参数名的参数,**key将把它们组装成dict传入函数内
切片
对于一个list或者tuple
list[3:10:2]意思是从3取到10(不会用到10),每两个取一个,将会取出第3,5,7,9个数组成新list
缺省3意味着从0开始,缺省10意味着直到最后,缺省:2意味着每一个取一个(依次取出来)
‘ABCDEFG’[::2] =’ACEG’
迭代
enumerate会自动建立索引
>>> for i, value in enumerate([‘A’, ‘B’, ‘C’]):
print i, value
结果会是0 A 1 B 2 C
另外:字符串str也是可以迭代的
列表生成式
range(1,5)=[1,2,3,4]
[x * x for x in range(1,5)]=[1,4,9,16]
[m + n for m in ‘ABC’ for n in ‘XYZ’]=[‘AX’, ‘AY’, ‘AZ’, ‘BX’, ‘BY’, ‘BZ’, ‘CX’, ‘CY’, ‘CZ’]
生成器generator
方法一:将列表生成式的[]改为()即可
方法二:在函数中添加yield,这样函数返回值将会成为一个生成器,每次运行到yield得到值,next后得到下一个yield处的值,如此知道执行到return或程序块完结为止。
高阶函数
最简单的高阶函数:
def add(x, y, f):
return f(x) + f(y)
#把函数作为参数带入另一个函数式
map/reduce
new_list = map(function,old_list)
传入的函数将作用于传入的list上的每一个元素,并成为新的list
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
传入的函数将需要有两个参数,如上进行工作