之所以读书、行路,就是希望我们能够不断地享受高级快乐
伊始
很多喜欢使用 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!