1. 一个小问题:
在循环的过程中删除列表元素,会与预期结果不同,但不会报错
lis =[11,22,33,44,55] for i in range(len(lis)): # 在第一次使用range()时,默认保存了值,在之后的循环值中这个值是固定死的了 print(i) del lis[i] print(lis) del lis[1::2] print(lis) for i in range(0, 2): print(i,type(i)) del lis[i] print(lis)
对于字典dict : 在循环的过程中不能对字典键值对进行删除,会报错
dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘a3‘:‘v3‘} for i in dic: if ‘k‘ in i: del dic[i]
正确做法1
dic1 = {} for i in dic: if ‘k‘ not in i: dic1.setdefault(i,dic[i]) dic = dic1 print(dic1)
正确做法2 : 把要删除的放到列表里,循环列表删除
dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘a3‘:‘v3‘} l = [] for i in dic: if ‘k‘ in i: l.append(i) for i in l: del dic[i] print(dic)
2. 元组问题 (面试题)
元组里面只有一个元素且不加逗号,则元素是什么类型,就是什么类型
tu1 = (1) tu2 = (2,) print(tu1,type(tu1)) # 1 <class ‘int‘> print(tu2,type(tu2)) # (2,) <class ‘tuple‘> tu1 = ([1]) tu2 = ([1],) print(tu1,type(tu1)) # [1] <class ‘list‘> print(tu2,type(tu2)) # ([1],) <class ‘tuple‘>
原文地址:https://www.cnblogs.com/arrow87/p/9298161.html
时间: 2024-11-06 18:13:24