python中的小技巧

1.求1~100以内的素数

prime=filter(lambda x: not [x%i for i in range(2,x) if x%i==0], range(2,101))#列表推导,一行搞定.
print prime

2.求字符串子串

s='hauifnefldmfp'
[s[i:i+n] for i in range(len(s)) for n in range(1, len(s)-i+1)]

3.求任意字符串中,所有符合ab 类型的子串:

  eg:s ='aabbbb123456jjiidddccc'

    结果:       

      aabb
      jjii
      iidd
      ddcc

def find_child(s):
    list = [s[i:i+n] for i in range(len(s)) for n in range(1, len(s)-i+1)]
    l=[]
    [l.append(z) for z in s if z not in l]

    for k in range(1,len(l)):
        n, n2 = l[k-1], l[k]
        for i in range(len(l)/2):
            n, n2 = n+l[k-1], n2+l[k]
            result = n + n2
            final = [d for d in list if d == result]
            if final !=[]:print final[0]

if __name__ == '__main__':
    s ='aabbbb123456jjiidddccc'
    find_child(s)

  

  

posted @ 2014-07-12 20:35  huangxiaohen  阅读(308)  评论(0编辑  收藏  举报