宝子们,是不是刚学Python就陷入“代码写得又长又慢”的怪圈?明明实现一个功能,别人几行代码搞定,你却写满屏嵌套循环?
别慌!今天分享3个冷门但巨好用的Python小技巧,新手也能直接抄作业,效率直接翻倍!
🔥 技巧1:用enumerate(),告别手动计数的蠢办法
刚学Python时,遍历列表想同时拿到索引和值,是不是总这么写?
python
fruits = ["apple", "banana", "orange"]
index = 0
for fruit in fruits:
print(index, fruit)
index += 1
又麻烦又容易忘写 index += 1 ,简直是新手噩梦!
一招搞定:直接用 enumerate() ,索引和值一步到位!
python
fruits = ["apple", "banana", "orange"]
for index, fruit in enumerate(fruits, start=1): # start=1 让索引从1开始
print(index, fruit)
输出直接清爽:
plaintext
1 apple
2 banana
3 orange
✨ 实用场景:批量处理数据、生成带序号的报告,再也不用手动维护计数器!
🔥 技巧2:defaultdict(),专治字典“键不存在”报错
新手写字典最崩溃的瞬间:想给字典新增键赋值,结果直接报 KeyError !
python
student_scores = {}
student_scores["小明"].append(90) # 直接报错 KeyError: '小明'
明明只想优雅地给小明加个分数,却要先判断键存不存在,太麻烦!
救命神器: collections.defaultdict ,自动给不存在的键创建默认值!
python
from collections import defaultdict
student_scores = defaultdict(list) # 默认值是空列表
student_scores["小明"].append(90)
student_scores["小红"].append(85)
print(dict(student_scores))
输出完美符合预期:
plaintext
{'小明': [90], '小红': [85]}
✨ 实用场景:统计数据、分组归类,比如统计每个单词出现的次数,再也不用写 if key in dict 的判断!
🔥 技巧3:zip(),让多个列表“手拉手”遍历
想同时遍历两个甚至多个列表,新手是不是总写嵌套循环?
python
names = ["小明", "小红", "小刚"]
scores = [90, 85, 95]
for i in range(len(names)):
print(names[i], scores[i])
代码又丑又容易出错,要是列表长度不一样,直接翻车!
神仙方法:用 zip() 把多个列表打包成“配对元组”,遍历超丝滑!
python
names = ["小明", "小红", "小刚"]
scores = [90, 85, 95]
for name, score in zip(names, scores):
print(f"{name}:{score}分")
输出干净利落:
plaintext
小明:90分
小红:85分
小刚:95分
⚠️ 避坑提醒:如果列表长度不同, zip() 会以最短的列表为准截断,想保留全部元素可以用 itertools.zip_longest !
💡 最后唠两句
Python的精髓就是“简洁优雅”,很多时候不是你写得不够好,而是没找对工具!
这3个小技巧看着简单,但真正用在项目里,能少写几十行冗余代码,还能减少bug。
💬 互动时间:你还知道哪些Python冷门小技巧?评论区分享出来,一起卷死面试官!
🎁 福利时间:关注公众号,回复【Python技巧】,领取《Python新手避坑指南+常用函数速查表》!