python-3_函数_匿名函数_正则_yield_迭代器_序列化_内置函数_模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-3_函数_匿名函数_正则_yield_迭代器_序列化_内置函数_模块相关的知识,希望对你有一定的参考价值。

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(‘~‘)



以上是关于python-3_函数_匿名函数_正则_yield_迭代器_序列化_内置函数_模块的主要内容,如果未能解决你的问题,请参考以下文章

python_递归_协程函数(yield关键字)_匿名函数_模块

PYTHON_DAY_05

递归,匿名函数,内置函数

如果在“with”块内完成,“yield”会触发 __exit__ 函数吗?

yield的表达式形式与内置函数

生成器yield