有关Python里的del


        for i in range(100):
            d = random.randint(0,len(field)-2)
            if c != d:
                break
        del field[d]
        
        for i in range(100):
            d = random.randint(0,len(field)-2)
            if c != d:
                del field[d]
                break

这两的区别在哪哈
为啥跑出的结果不一样呢

第一块即使c!=d都不成立的情况,会删除for循环最后 一次随机生成的d位置的元素。如果出现匹配则和第二块效果一样

第二块只有c!=d成立后才会删除field集合中元素

总的来说:第一块就是不管是否匹配都会删除一个元素,第二块只有匹配后才会删除

img


for i in range(100):
            d = random.randint(0,len(field)-2)
            if c != d:
                break
del field[d]

如果for结束了,还没有找到,也会执行del field[d]。另外一个只是匹配了才执行

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632