DC娱乐网

Python小技巧:三行代码搞定,效率翻倍 写代码久了会发现一个情况。真正

Python小技巧:三行代码搞定,效率翻倍

写代码久了会发现一个情况。真正好用的东西往往不长。Python 里很多操作,看着简单,背后省下的时间很实在。今天说几个。
01 交换两个变量
第一个,交换两个变量。别的语言里要借一个临时变量。Python 直接写 a, b = b, a 。一行。不绕弯。读起来就是交换的意思。这个写法在建堆、排序、洗牌里都能用。少写两行,少想一步。
02 列表拼接成字符串
第二个,把列表里的元素拼成字符串。有人写循环,一个个加。有人用 join。join 是三行以内的事。写法是 sep.join(列表)。sep 是分隔符。空字符串也行。列表里必须是字符串。不是字符串就先转。 一行 map(str, 列表) 套进去 。整个表达式一行。比循环快,也比循环干净。
03 快速去重又保持顺序
第三个,快速去重又保持顺序。set 去重会打乱顺序。想要顺序不变,用 dict.fromkeys。写法是 list(dict.fromkeys(列表)) 。一行。字典的键不重复,插入顺序又保留。这个技巧在数据清洗里很省事。不用自己写循环标记。
04 条件赋值
第四个,条件赋值。常规写法是 if else 占四行。Python 支持 a = x if 条件 else y 。一行。读起来像自然语言的倒装。用多了会习惯。适合简单分支。复杂逻辑还是分开写。别为了短而短。
05 同时遍历索引和值
第五个,同时遍历索引和值。有人写 range(len(列表))。有人写 i = 0 然后 i += 1。用 enumerate 更直接。写法是 for i, v in enumerate(列表) 。一行拿到位置和元素。还能指定起始序号。enumerate(列表, 1) 从 1 开始。处理报表、编号输出都用得上。
06 合并两个字典
第六个,合并两个字典。Python 3.9 以后可以用 |。写法是 d = d1 | d2 。右边覆盖左边。一行。之前的版本用 {**d1, **d2}。也是行内解决。不用循环 update。不用导入模块。
07 读取文件
第七个,读取文件。有人写 f = open() 然后 try finally。 with open(路径) as f 更稳。两行读完。文件自动关。内存不泄漏。这个写法不是炫技。是基本习惯。写多了会形成肌肉记忆。
08 列表推导式里的条件
第八个,列表推导式里的条件。想筛选又想变换。写法是 [f(x) for x in 列表 if 条件] 。一行。比 filter 加 map 可读。比循环加 append 快。注意别嵌套三层以上。嵌套多了拆开写。可读性比短更重要。
这些技巧单个看都不大。一天写几十次,一次省几秒。加起来就是很多时间。 代码短了,出错的地方也少。 读的人不用绕弯。改的人不用猜意图。
有人觉得短代码难懂。其实不是。难懂的是故意压缩。上面的写法都有明确语义。学一次就能记住。记住就能用。用了就顺手。
你平时写 Python 最常用哪一条。或者你有自己的三行写法。可以在下面说出来。大家一起看看。

Python 手册
每 一 行 代 码 都 有 意 义

觉得有用的话
点赞 · 在看 · 分享 作者 | 张姐  ·  出品 | Python 手册