我试图转换列表中所有元素的类型:
class Dict1(dict):
pass
class Dict2(dict):
pass
def print_type(alist):
for i in range(len(alist)):
print(type(alist[i]))
l=[]
for i in range(3):
l.append(Dict1())
for element in l:
element=Dict2(element)
print_type(l)
for i in range(len(l)):
l[i]=Dict2(l[i])
print_type(l)
输出:
<class '__main__.Dict1'>
<class '__main__.Dict1'>
<class '__main__.Dict1'>
<class '__main__.Dict2'>
<class '__main__.Dict2'>
<class '__main__.Dict2'>
当我使用时for element in l,元素的类型不会转换为 Dict2,但是,for i in range(len(l))可以做到这一点。
谁能告诉我这是什么原因?