我试过了:
listing = []
entry = [0.0]*2
entry[0] = 1.0
entry[1] = 2.0
listing.append(entry) # My first entry
entry[0] = 2.0
entry[1] = 3.0
listing.append(entry) # Another entry
以上不起作用。保留相同的条目指针,因此更新条目还会更新列表的[1.0,2.0]条目。我可以用它来解决这个问题:
entry[0] = 1.0
entry[1] = 2.0
listing.append(entry) # My first entry
entry = [0.0]*2
entry[0] = 2.0
entry[1] = 3.0
listing.append(entry) # Another entry
entry = [0.0]*2
但这看起来很笨拙。有没有更简洁的方法呢?
更新:(这切断了这个重复的问题的喋喋不休) 至少对于Python 3.X用户来说,最好的方法是:
listing.append(entry.copy())
答案 0 :(得分:1)
假设您希望将条目保留为列表(出于我怀疑的目的,我建议使用命名元组):
您可以内联条目创建
listing = []
listing.append([1.0,2.0])
listing.append([2.0,3.0])
答案 1 :(得分:1)
而不是:
entry = [0.0]*2
entry[0] = 1.0
entry[1] = 2.0
使用:
# not mutable
entry = 1.0, 2.0
# mutable
entry = [1.0, 2.0]