每个Python新手都干过这事:存数据用list,配参数用list,去重还是list——然后手写循环硬刚。原作者说,这就像「用瑞士军刀切牛排」,能切,但刀工感人。
Python其实给了四把专用刀。list是万能胶带,什么都能粘,但粘完一团乱;tuple是焊死的铁盒,放进去就封死,适合当字典的钥匙;set是自动筛子,重复元素扔进去直接消失,查重比list快100倍;dict是带标签的抽屉,找东西不用翻,直接报编号。
原作者的顿悟来自一次性能暴击:用list去重100万条数据,循环跑了8秒;换成set,0.003秒收工。差距不是代码问题,是选错了容器。
最狠的细节藏在日常里。很多人不知道tuple因为不可变,内存占用比list小40%,批量数据能省出半个G。而dict的key必须可哈希,这个限制反而让它成了Python里查询最快的结构——没有之一。
现在回头看,那句「瑞士军刀切牛排」的类比,其实是给所有自学者的警告:语言给的工具越多,越要克制「一把梭」的冲动。
热门跟贴