Python之一行代码的终极“姿势”(干货!)

Python的简洁之美,一行代码也能玩出姿势的花样~~~~~

1.一行代码交换参数a, b的值

a, b = b, a

2.一行代码反转list(列表)

[v1,v2,v3][::-1]
#输出结果为:[v3,v2,v1]

3.一行代码list(列表)去重(元素)

set([1,2,2,3,3,3,4])
#输出结果为:{1, 2, 3, 4}

4.一行代码求list(列表)中的最大值

max(max([[1,2,3], [6,2], [4]], key=lambda v: max(v)))
#输出结果为:6

5.一行代码合并两个字典

 {**{'Name':'Tom', 'Age':'16', 'Sex':'male'}, **{'ID':'001', 'School':'yale'}}
 #输出结果为:{'Name': 'Tom', 'Age': '16', 'Sex': 'male', 'ID': '001', 'School': 'yale'}

6.一行代码生成顺序序列

list(range(10))
#输出结果为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

7.一行代码生成逆序序列

list(range(10,-1,-1))
#输出结果为:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

8.一行代码生成九九乘法表

print ('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
#输出结果为:
1*1=1 
1*2=2  2*2=4 
1*3=3  2*3=6  3*3=9 
1*4=4  2*4=8  3*4=12 4*4=16
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

9.一行代码实现 a 到 b 的和 (a 与 b 均为int变量)

#示例求1——100的和
print(sum(range(1, 101)))
#输出结果为:5050

10.一行代码实现求解2的1000次方的各位数之和

print(sum(map(int, str(2**1000))))
#输出结果为:1366

11.一行代码实现心形输出

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)]))
#输出结果:
                LoveLove全            洛LoveLov               
            全 洛LoveLove全 洛Lov   ve全 洛LoveLove全 洛L           
          e全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛Love         
         e全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛LoveLo        
        e全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛LoveLove       
        全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛LoveLove全       
         洛LoveLove全 洛LoveLove全 洛LoveLove全 洛LoveLove全        
        洛LoveLove全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛       
        LoveLove全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛L       
        oveLove全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛Lo       
         eLove全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛Lo        
          ove全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛Lo         
          ve全 洛LoveLove全 洛LoveLove全 洛LoveLove全 洛Lov         
             洛LoveLove全 洛LoveLove全 洛LoveLove全 洛Lo           
             LoveLove全 洛LoveLove全 洛LoveLove全 洛Lo            
              veLove全 洛LoveLove全 洛LoveLove全 洛Lo             
                ove全 洛LoveLove全 洛LoveLove全 洛L               
                  全 洛LoveLove全 洛LoveLove全 洛                 
                    LoveLove全 洛LoveLove全                    
                       Love全 洛LoveLove                      
                          全 洛LoveLo                         
                             ove                            
                              e   

12.一行代码输出斐波那契数列

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)]])
#输出结果为:[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040]

13.一行代码实现快速排序

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.一行代码解决八皇后问题

[__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)))]
#输出结果(展示部分):
Q.......
....Q...
.......Q
.....Q..
..Q.....
......Q.
.Q......
...Q....

15.一行代码将十进制转换为(二、八、十六)进制 and 十转ASCll码 and ASCll码转十

#十转二
bin(10)
#输出结果为:0b1010

#十转八
oct(10)
#输出结果:0o12

#十转十六
hex(10)
#输出结果为:0xa

#十转ASCll
chr(65)
#输出结果为:A

#ASCll转十
ord('A')
#输出结果为:65

16.一行代码启动一个Web服务

python -m http.server 8080

17.一行代码输出Mandelbrot图像

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)]))
#输出结果:
                                                                                *                   
                                                                                                    
                                                                                                    
                                                                          **                        
                                                                     ***********                    
                                                                    ************                    
                                                                      *********                     
                                                            *    * ************  * *                
                                                    ****** * *************************** *          
                                                    *************************************** *****   
                                                     *******************************************    
                                               *** ******************************************** *   
                                                **************************************************  
                                             *******************************************************
                      *        *              ***************************************************** 
                     **** ******* *          *******************************************************
                      *****************     ******************************************************* 
                   *********************** *********************************************************
                   *********************** ******************************************************** 
             **** ********************************************************************************  
*********************************************************************************************       
             **** ********************************************************************************  
                   *********************** ******************************************************** 
                   *********************** *********************************************************
                      *****************     ******************************************************* 
                     **** ******* *          *******************************************************
                      *        *              ***************************************************** 
                                             *******************************************************
                                                **************************************************  
                                               *** ******************************************** *   
                                                     *******************************************    
                                                    *************************************** *****   
                                                    ****** * *************************** *          
                                                            *    * ************  * *                
                                                                      *********                     
                                                                    ************                    
                                                                     ***********                    
                                                                          **                                                       

原图为:
在这里插入图片描述


本篇完

发布了32 篇原创文章 · 获赞 129 · 访问量 7953

猜你喜欢

转载自blog.csdn.net/weixin_43347550/article/details/105553078