列表推导式中的各个元素在不同的内存中,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的对象机制,赋值操作将新对象连接到某个参数