Python优雅之道 基础

2022/06/14 One-minute read

Python优雅之道-基础

输入n组数据,每组数据以空格分割,存于数组中

num = int(input().strip())
interval_set = [list(map(int, input().strip().split())) for _ in range(num)]
输入:
3
3 7
2 4
10 30
输出:
[[3, 7], [2, 4], [10, 30]]

map似乎是一个不太受python推荐的方法,但在这种场景中的确是可以很优雅的表示出来。

最值问题

最值初始为None,将最值与待比较的多个值逐一比较,不断刷新最值

排序问题

事实上排序的算法有很多,但是今天忽然看到一个新的思路:相邻两个数不断排序,直到没有调换的数据,这看上去是冒泡法的一个变形,但是却让我觉得无比的优雅。 用最简单的方式实现,不需要额外的进行思考,相比于冒泡法的逐个减少排序个数的方式,这种更为直观,不要和我提运行的时间成本以及大量数据排序的情况, 那种情况不在考虑范围内。就像是朋友说的,Python的速度和C完全没有可比性,但是Python完全可以调用C,当然这不是最关键的,最关键的是Python的开发效率 是C望尘莫及的,很多时候我们考虑的不是机器的效率,而是人的效率。

m = [3, 44, 523, 11, 23, 45, 233, 55, 432]
Flag = True
while Flag:
    index = 0
    for i in range(len(m) - 1):
        if m[i] > m[i + 1]:
            m[i], m[i + 1] = m[i + 1], m[i]
            index = index + 1
    if index == 0:
        Flag = False
print(m)

思想

大学的C老师当时和我们说,编程最重要的是编程思想。他C语言用了很多年,有一天用Python,仅仅花了半天就学会了。事实上我不知道该说什么,我学完C后,也是看了下JS的视频, 大概一下午,中间跳过了很多东西,因为基本上有C的基础,那些都不用看,但是我依然不会使用JS。毕竟,Vue和React至少要学一个吧,不然能说会JS吗?

以前很喜欢的一句话:以大多数人的努力程度还远远没有到需要拼天赋的地步

我想这里也同样适用:以大多数人的代码编写量还远远没有到需要拼算法思想的地步

编程思想是一种奢侈品,有则欢喜,无则坦然。

对于大多数人而言,与其追求编程思想,倒不如退而求其次,追求编程愉悦,在赚钱的同时,还能保留有一份小小的热爱,那就足够了。