Python的简洁之美,一行代码也能玩出姿势的花样~
1.一行代码交换参数a, b的值
1 | a, b = b, a |
2.一行代码反转list(列表)
1 | [v1,v2,v3][::-1] |
3.一行代码list(列表)去重(元素)
1 | set([1,2,2,3,3,3,4]) |
4.一行代码求list(列表)中的最大值
1 | max(max([[1,2,3], [6,2], [4]], key=lambda v: max(v))) |
5.一行代码合并两个字典
1 | {**{'Name':'Tom', 'Age':'16', 'Sex':'male'}, **{'ID':'001', 'School':'yale'}} |
6.一行代码生成顺序序列
1 | list(range(10)) |
7.一行代码生成逆序序列
1 | list(range(10,-1,-1)) |
8.一行代码生成九九乘法表
1 | print ('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])) |
9.一行代码实现 a 到 b 的和 (a 与 b 均为int变量)
1 | #示例求1——100的和 |
10.一行代码实现求解2的1000次方的各位数之和
1 | print(sum(map(int, str(2**1000)))) |
11.一行代码实现心形输出
1 | print('\n'.join([''.join([(u'Love全 洛Love'[(x-y)%11]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)])) |
12.一行代码输出斐波那契数列
1 | 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)]]) |
13.一行代码实现快速排序
1 | quick_sort = lambda arr: arr if len(array) <= 1 else quick_sort([item for item in arr[1:] if item <= arr[0]]) + [arr[0]] + quick_sort([item for item in arr[1:] if item > arr[0]]) or arr |
14.一行代码解决八皇后问题
1 | [__import__('sys').stdout.write('\n'.join('.' * i + 'Q' + '.' * (8-i-1) for i in vec) + "\n========\n") 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)))] |
15.一行代码将十进制转换为(二、八、十六)进制 and 十转ASCll码 and ASCll码转十
1 | #十转二 |
16.一行代码启动一个Web服务
1 | python -m http.server 8080 |
17.一行代码输出Mandelbrot图像
1 | print('\n'.join([''.join(['*'if abs((lambda a: lambda z, c, n: a(a, z, c, n))(lambda s, z, c, n: z if n == 0 else s(s, z*z+c, c, n-1))(0, 0.02*x+0.05j*y, 40)) < 2 else ' ' for x in range(-80, 20)]) for y in range(-20, 20)])) |
原图为: