首页 > 代码库 > Python 知识点,小用法

Python 知识点,小用法



1.匿名函数

lamdba x:x**2
def f(x):
    return x**2

g = lambda x:x**2

    print map(f,range(10))
    print map(g,range(10))


2.map函数

    print map(f,range(10))
    print map(g,range(10))


3.排序函数sorted


    dic1 = {
        9:2,
        4:6,
        8:1,
        ‘a‘:10
    }

    print dic1

    print  sorted(dic1.items())
    print  sorted(dic1.items(),key=lambda x:x[0])
    print  sorted(dic1.items(),key=lambda x:x[1])

4.迭代器
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143178254193589df9c612d2449618ea460e7a672a366000
迭代器仅仅记录一个开始,和一个结束,和当前位置,每循环一次就往下走一步
好处:节省内存空
其中:xrange(),xreadlines()



import time
def run():
    print ‘test 1‘
    time.sleep(1)
    yield 1   ##这个相当于reture 1 ,但是yield 1 的话,当你再次执行x.next()时还可以回来从这个地方开始执行下面的内容,直到遇到下一个yield再退出
                # 而reture退出之后是无法回来再执行下面的内容
    print ‘test 2‘
    time.sleep(1)
    yield 2

    print ‘test 3‘
    time.sleep(1)
    yield 3

    print ‘test 4‘
    time.sleep(1)
    yield 4

    print ‘test 5‘

task = run()

task.next()

print "--------do sth 1 -----------"
task.next()
print "--------do sth 2 -----------"

task.next()
print "--------do sth 3 -----------"

task.next()
print "--------do sth 4 -----------"

task.next()
print "--------do sth 5 -----------"

task.next()    ##这个时候会出现StopIteration报错

##好处,可以让其和主程序来回切换取调用其他内容


5.正则表达


>>> import re
>>> a = ‘asdasd3as9#23_454/45(*_dfdf_\\~r)3‘
>>> m = re.search(‘dfd‘,a)
>>> print  m
<_sre.SRE_Match object at 0x10221a030>
>>> print m.group()
dfd
>>>
>>>
>>> m = re.findall(‘[a-zA-Z]+‘,a)  ##查找所有字母,元组的格式返回
>>> print m
[‘asdasd‘, ‘as‘, ‘dfdf‘, ‘r‘]
>>>
>>>
>>> m = re.split(‘\d+‘,a)
>>> print m
[‘asdasd‘, ‘as‘, ‘#‘, ‘_‘, ‘/‘, ‘(*_dfdf_\\~r)‘, ‘‘]
>>>
>>>
>>> m = re.sub(‘\d+‘,"|",a,count=3)
>>> print m
asdasd|as|#|_454/45(*_dfdf_\~r)3
>>>
>>> a
‘asdasd3as9#23_454/45(*_dfdf_\\~r)3‘
>>>

>>> a=‘192.173.12.121‘   ##匹配ip
>>> a
‘192.173.12.121‘
>>> re.search(‘(\d+)(\.\d+){3}‘,a).group()
‘192.173.12.121‘



6.递归函数


def calc(n):
    print ‘------------->‘,n
    if n > 0:
        calc((n/2))

calc(20)

-------------> 20
-------------> 10
-------------> 5
-------------> 2
-------------> 1
-------------> 0


本文出自 “奋斗吧” 博客,转载请与作者联系!

Python 知识点,小用法