Python循环秘技!90%新手不知道的7个for用法,第3个绝了!
实习生用错for循环,1天删光数据库!这7个保命技巧,现在看还来得及!
一、新手必死的3个坑(血泪警告)
坑1:循环中修改列表
# 作死写法(删不干净)
names = ["张三", "李四", "王五"]
for name in names:
if "王" in name:
names.remove(name)
# 保命方案
for name in names.copy(): # 复制副本循环
if "王" in name:
names.remove(name)
坑2:死循环炸弹
# 直接卡死!
lst = [1]
for i in lst:
lst.append(i) # 列表无限增长
坑3:索引越界惨案
# 报错IndexError!
arr = [10, 20]
for i in range(3):
print(arr[i])
# 正确姿势
for i in range(len(arr)): # 用len动态控制
print(arr[i])
二、内行人偷偷用的4个神操作
技巧1:用enumerate偷下标(告别i=0)
# 小白写法
i = 0
for item in list:
print(i, item)
i += 1
# 大神写法
for i, item in enumerate(list, start=1): # start可自定义起始值
print(f"第{i}个元素:{item}")
技巧2:zip一键并行循环
# 同时遍历多个列表
names = ["张三", "李四"]
ages = [25, 30]
for name, age in zip(names, ages):
print(f"{name}今年{age}岁")
技巧3:for-else黑加轮
# 循环完没break才触发else
for num in [2,4,6]:
if num % 2 != 0:
break
else:
print("全是偶数!") # 会执行
三、面试必考的2道送命题
题目1:下面代码输出啥?
for i in range(5):
pass
print(i) # 输出4!循环变量会泄露
题目2:如何倒序遍历列表?
# 错误答案
for i in range(len(lst)-1, -1, -1):
# 碾压级答案
for item in reversed(lst):
你以为for只能循环列表?关注我,下期更精彩哦!