列表推导式中的各个元素的id并不一样

列表推导式中的各个元素在不同的内存中,id不一样

# 列表推导式的不同id值 -----------------------------------------------------
T = []
def sh(i): 
    mm = []
    for j in range(5):
        s = i+j
        mm.append(s)
    print('mmmmmmmmmmmm: ', mm)
    print(id(mm))
    return mm
T = [sh(i) for i in (2,3,4)]
print(T)

1. 当 i=2时,j循环0-4

#最后mm的值是:[2, 3, 4, 5, 6]
#id值是:2362258199496

2. 当 i=3时,j循环0-4

#最后mm值是:[3, 4, 5, 6, 7]
#id值是:2362268741064

3. 当i=4时,j循环0-4

#最后的mm值是:[4, 5, 6, 7, 8]
#id值是:2362257557384

4. 最后的T值是:[[2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8]]

# 个人觉得是python的对象机制,赋值操作将新对象连接到某个参数

猜你喜欢

转载自www.cnblogs.com/qi-yuan-008/p/11877340.html