【发布时间】:2018-11-09 18:50:53
【问题描述】:
my_list = ['abc', 'def']
outer_list = []
for element in my_list:
inner_list = []
for ch in element:
inner_list.append(ch)
outer_list.append(inner_list)
print(outer_list)
# output [['a', 'b', 'c'], ['d', 'e', 'f']]
我的问题是,为什么会这样?即,为什么line inner_list = [] 不消除inner_list 的先前实例?我认为这与outer_list 的范围在'for' 块之外有关。也许一旦 inner_list 占据了那里,它就与变量名分离了?这么近吗?
【问题讨论】:
-
因为变量 != 对象。一个变量持有一个引用。如果引用发生变化,并不一定意味着对象被销毁。