Python Tricks -- One-Line Code

之所以读书、行路,就是希望我们能够不断地享受高级快乐

伊始

很多喜欢使用 Python,是因为它的简便、易用且功能强大。但把python当作C来写的人也屡见不鲜,我个人较为着迷于用一行代码解决一些复杂的问题,可以参考我之前的文章一行有效python代码
当然,Python 中的大多数一行代码都是用 map() 和列表生成式编写的。今天,再和大家一起看几个一行python代码就能搞定的问题。


list中的元素类型转换

  • Example
list(map(int, ['1', '2', '3']))
list(map(float, ['1', 2, '3.0', 4.0, '5', 6]))
  • Output

[1, 2, 3]
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]


int的位数和

  • Desc

12345 => 1+2+3+4+5 = 15

  • How
sum_of_digits  = lambda x : sum(map(int, str(x)))

print(sum_of_digits(12345))
  • Output

15


二维数组的扁平化

  • Desc

[[1, 2, 3], [4, 5], [6], [7, 8], [9]] ==> [1, 2, 3, 4, 5, 6, 7, 8, 9]

  • How
datas = [[1, 2, 3], [4, 5], [6], [7, 8], [9]]

flattened_list = [item for data in datas for item in data]

矩阵转置

  • Desc

[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
==>
[[1, 4, 7],
[2, 5, 8],
[3, 6, 9]]

  • How
    结合zip使用列表生成式
A =  [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

[list(i) for i in zip(*A)]

交换dict的key和value

  • How
d = {'one':  1, 'three': 3}
staff = {i:j for j, i in d.items()}
  • Output

{1: 'one', 3: 'three'}


Not End

Have a nice day!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,848评论 0 10
  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 1,077评论 0 2
  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,...
    jbb_43b0阅读 921评论 0 0
  • 基本语法 输入输出 print / input 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Py...
    bitzoo阅读 1,700评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,606评论 28 53