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只能循环列表?关注我,下期更精彩哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值