Python通过两种不同的方法构建列表

Python通过两种不同的方法构建列表,python,list,append,Python,List,Append,可能重复: 我对Python和编程都是新手。我读了ThinkPython这本书,但有一件事我不明白 练习10.7编写一个函数,读取words.txt文件并构建一个每个单词一个元素的列表。编写此函数的两个版本,一个使用append方法,另一个使用惯用法t=t+[x]。哪一个需要更长的时间运行?为什么? 我尝试了这两种方法,发现后一种方法(t=t+[x])比append方法花费的时间要长得多。这是我的第一个问题,为什么会发生这种情况 我将行t=t+[x]更改为t+=[x],只是没有任何理由,只是发

可能重复:

我对Python和编程都是新手。我读了ThinkPython这本书,但有一件事我不明白

练习10.7编写一个函数,读取words.txt文件并构建一个每个单词一个元素的列表。编写此函数的两个版本,一个使用append方法,另一个使用惯用法t=t+[x]。哪一个需要更长的时间运行?为什么?

我尝试了这两种方法,发现后一种方法(t=t+[x])比append方法花费的时间要长得多。这是我的第一个问题,为什么会发生这种情况

我将行t=t+[x]更改为t+=[x],只是没有任何理由,只是发现这个修订版几乎与append方法花费相同的时间。我以为t=t+[x]等于t+=[x],显然不是。为什么?

顺便说一句:我试着用python+=作为关键词搜索谷歌,但谷歌似乎不会把+=作为关键词,即使我给它加了引号

t = t + [x]
采用
t
,与
[x]
连接(调用
t
的方法),创建一个新列表,然后命名为
t

t += [x]

调用直接作用于列表本身的
t
方法。没有创建额外的列表。

首先,您需要知道,该方法会创建一个新对象,而append()只会修改现有对象,从而获得更好的性能

至于第二个问题,了解以上内容后,您可能会发现“+=”或“plus equals”运算符在python中与什么等效,因此其行为与“+”运算符不同


您可能还想了解addiadd方法之间的区别,这两种方法在您的示例中被调用,也许还可以用来建立您的知识。

谢谢,您是对的。我的帖子是你链接的那篇的复制品。我应该做一个更深入的搜索。谢谢你指出python.org上非常好的链接。这确实消除了我的困惑。