python 一行代码去重_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]]) 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)]))

#输出结果:

*

**

***********

************

*********

* * ************ * *

****** * *************************** *

*************************************** *****

*******************************************

*** ******************************************** *

**************************************************

*******************************************************

* * *****************************************************

**** ******* * *******************************************************

***************** *******************************************************

*********************** *********************************************************

*********************** ********************************************************

**** ********************************************************************************

*********************************************************************************************

**** ********************************************************************************

*********************** ********************************************************

*********************** *********************************************************

***************** *******************************************************

**** ******* * *******************************************************

* * *****************************************************

*******************************************************

**************************************************

*** ******************************************** *

*******************************************

*************************************** *****

****** * *************************** *

* * ************ * *

*********

************

***********

**

原图为:

f68dd885707bdee78fe5360fecfdcf03.png

作者:全 洛

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值