更新Python列表的正确方法是什么?

2024-04-19 08:18:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过这个:

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())

Tags: 方法用户myanother条目firstlistingentry
2条回答

假设您希望将条目保留为列表(但出于我怀疑的目的,我建议使用namedtuple):

您可以内联创建条目

listing = []
listing.append([1.0,2.0])
listing.append([2.0,3.0])

而不是:

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]

相关问题 更多 >