zoukankan      html  css  js  c++  java
  • Pythonic Code In Several Lines

      1. Fibonacci Series

    #1
    def Fib(n):
        if n == 1 or n == 2:
            return 1;
        else:
            return Fib(n - 1) + Fib(n - 2)
    #2
    def Fib(n):
        return 1 and n <= 2 or Fib(n - 1) + Fib(n - 2)
    #3
    Fib = lambda n: 1 if n <= 2 else Fib(n - 1) + Fib(n - 2)
    
    #4
    def Fib(n):
        x, y = 0, 1
        while(n):
            x, y, n = y, x + y, n - 1
        return x
    #5
    Fib = lambda n, x = 0, y = 1 : x if not n else Fib(n - 1, y, x + y)
    #6
    def Fib(n):
        def Fib_iter(n, x, y):
            if n == 0: 
                return x 
            else: 
                return Fib_iter(n - 1, y, x + y)
        return Fib_iter(n, 0, 1)
    #7
    def fib(n):
        def m1(a,b):
            m=[[],[]]
            m[0].append(a[0][0]*b[0][0]+a[0][1]*b[1][0])
            m[0].append(a[0][0]*b[0][1]+a[0][1]*b[1][1])
            m[1].append(a[1][0]*b[0][0]+a[1][1]*b[1][0])
            m[1].append(a[1][0]*b[1][0]+a[1][1]*b[1][1])
            return m
        def m2(a,b):
            m=[]
            m.append(a[0][0]*b[0][0]+a[0][1]*b[1][0])
            m.append(a[1][0]*b[0][0]+a[1][1]*b[1][0])
            return m
        return m2(reduce(m1,[[[0,1],[1,1]] for i in range(n)]),[[0],[1]])[0]

     2. FizzBuzz

    print(' '.join(["fizz"[x % 3 * 4:]+"buzz"[x % 5 * 4:] or str(x) for x in range(1, 101)]))

    3. Primes between 1 and 100

    print(' '.join([str(item) for item in filter(lambda x: not [x % i for i in range(2, x) if x % i == 0], range(2, 101))]))
    print(' '.join([str(item) for item in filter(lambda x: all(map(lambda p: x % p != 0, range(2, x))), range(2, 101))]))

    4. Nine multiplication tables

    print('
    '.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)]) for x in range(1, 10)]))

    5. Flatten List

    flatten = lambda x: [y for l in x for y in flatten(l)] if isinstance(x, list) else [x]

    6. 

    print(sum(map(int, str(2**1000))))

    7. Print Fibonacci

    print([x[0] for x in [(a[i][0], a.append([a[i][1], a[i][0]+a[i][1]])) for a in ([[1, 1]], ) for i in range(30)]])

    8. Quick Sort

    qsort = lambda arr: len(arr) > 1 and qsort(list(filter(lambda x: x <= arr[0], arr[1:]))) + arr[0:1] + qsort(list(filter(lambda x: x > arr[0], arr[1:]))) or arr

    9. Eight Queens

    [__import__('sys').stdout.write('
    '.join('.' * i + 'Q' + '.' * (8-i-1) for i in vec) + "
    ========
    ") for vec in __import__('itertools').permutations(range(8)) if 8 == len(set(vec[i]+i for i in range(8))) == len(set(vec[i]-i for i in range(8)))]

    10. Generate primes in one line: (181222)

    reduce((lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r), range(2,N), set(range(2,N)))
  • 相关阅读:
    selenium
    selenium
    selenium
    selenium-控制浏览器操作
    selenium元素定位
    selenium测试-open chrome
    selenium环境搭建
    selenium简介
    74 计算机图形学开源处理库
    73 QT编程入门
  • 原文地址:https://www.cnblogs.com/niuxichuan/p/6727241.html
Copyright © 2011-2022 走看看