一、列表推导式:一行搞定循环+判断
概念:
用简洁语法快速生成/筛选列表,替代繁琐for循环+if判断。
语法:
[表达式 for 变量 in 可迭代对象 if 条件]
代码示例:
# 常规写法
old_list = [1,2,3,4,5,6]
new_list = []
for num in old_list:
if num % 2 == 0:
new_list.append(num*2)
# 列表推导式写法
new_list = [num*2 for num in [1,2,3,4,5,6] if num % 2 == 0]
print(new_list) # 输出:[4, 8, 12]
二、字典.get():避免KeyError的神器
概念:
安全获取字典值,键不存在时返回默认值,无需额外判断。
语法:
字典.get(键, 默认值)
代码示例:
user = {"name": "张三", "age": 20}
# 常规写法(易报错)
# print(user["gender"]) # KeyError: 'gender'
# get()写法
print(user.get("gender", "未知")) # 输出:未知
print(user.get("name", "匿名用户")) # 输出:张三
三、enumerate():循环自带索引
概念:
遍历可迭代对象时,同时获取元素索引和值,无需手动维护计数。
语法:
enumerate(可迭代对象, 起始索引=0)
代码示例:
fruits = ["苹果", "香蕉", "橙子"]
# 常规写法
index = 0
for fruit in fruits:
print(index, fruit)
index += 1
# enumerate()写法
for idx, fruit in enumerate(fruits, 1):
print(idx, fruit) # 输出:1 苹果 2 香蕉 3 橙子
四、zip():多序列同步遍历
概念:
将多个可迭代对象打包成元组,同步遍历对应位置元素。
语法:
zip(序列1, 序列2, ...)
代码示例:
names = ["张三", "李四", "王五"]
scores = [85, 92, 78]
# zip()遍历
for name, score in zip(names, scores):
print(f"{name}的成绩:{score}分")
# 输出:
# 张三的成绩:85分
# 李四的成绩:92分
# 王五的成绩:78分