任何人都可以解释我得到的输出。第一次变量lists
为空白但data[i]
,10
附加到lists[i]
后变为
List: [[10], [10, [10]]
我不知道这个长列表是怎么来的。我是python的新手来追踪它的行为。这是代码
data = [10, 20, 30]
list1 = list2 = list3 = list()
lists = [list1, list2, list3]
for i in range(len(data)):
lists[i].append(data[i])
print '-------------------'
print 'at %s' %(i)
print ' List: %s' % (lists)
print ' Data: %s' % (data[i])
并回复
-------------------
at 0
List: [[10], [10], [10]]
Data: 10
-------------------
at 1
List: [[10, 20], [10, 20], [10, 20]]
Data: 20
-------------------
at 2
List: [[10, 20, 30], [10, 20, 30], [10, 20, 30]]
Data: 30
答案 0 :(得分:1)
这是无效的问题(它包含随后提供的其他代码的输出),您可能在解释器中多次运行第二个(初始化后)部分。代码的输出应该类似于
-------------------
at 0
List: [[10], [10], [10]]
Data: 10
-------------------
at 1
List: [[10, 20], [10, 20], [10, 20]]
Data: 20
-------------------
at 2
List: [[10, 20, 30], [10, 20, 30], [10, 20, 30]]
Data: 30
在Python 2.7上测试
this question已经回答了“多次添加”的问题,因此我不会复制此信息。
答案 1 :(得分:0)
非常确定输出不是来自您发布的完整代码。它看起来很像你追加的列表(你只有一个,尽管所有名称list1,list2,list3和lists [i]引用它)并没有为每次循环运行创建新的,这样就完成了通过您发布的代码的第二行和第三行。