L=[‘a‘,‘b‘,‘c‘,‘d‘]
for (offset,item) in enumerate(L):
print offset,item
打印的结果:
0 a
1 b
2 c
4 d
迭代器:
for i in range(100): 生成列表
for i in xrange(100) 迭代器,速度会比range快
readlines() xreadlines()
例子:
def run():
print "test1"
yield 1 #变成迭代器,程序运行到这里会停止跳到外面的执行。yield相当于返回值。
time.sleep(1)
print "test2"
time.sleep(1)
print "test2"
time.sleep(1)
print "test2"
time.sleep(1)
task=run()
task.next()
print ‘--do sth else---‘
task.next() #如果不加本行,就不会执行yield后面的。
函数:
lambda函数(匿名函数):
def f(x):
return x**2
g = lambda x:x**2 匿名函数的写法
print map(f,range(10)) 把列表输入函数运算,再返回结果
print map(lambda x:x**2,range(10))
sorted()用法:例子是对字典key进行排序(虽然字典是无序的)
dic1={3:2,4:3,6:9,‘a‘:‘test‘,‘e‘:‘fff‘,‘*‘:‘$‘}
print sorted(dic1.items(),key=lambda x:x[0])
rgs kargs
内置函数:
a=range(10)
a=iter(a) #把列表变成了迭代器
a.next()
print [i for i in a if a<5]
filter(lambda x:x*x,a)
序列化:
硬盘上只能存字符串或者二进制,因此不能存字典,列表等。
pickle 只是python中使用的序列化类型。
pickle.dump(对象,文件句柄) pickle.load() pickle.dump(dic1,f)
json.dump() json.load()
正则表达式:
m = re.match("\d",匹配的对象) match是从开头匹配。
查看匹配到字符: m.group()
re.search()全局查找匹配
re.findall() 查找所有匹配到的
re.split() 按照符号分割
re.sub(‘\d‘,"|",字符对象) 把梳子全部替换成|
re.sub(‘\d‘,"|",字符对象,count=2) 只替换前两个
模块的创建和导入:
if __name__==‘__main__‘ 主动执行会执行,导入不执行
常用模块:
Import sys
Sys.path
Sys.path
Sys.exit
Import os
os.system(‘uname‘)
Os.mkdir(‘myDir‘)
Os.chdir(‘~‘)