Python 3中可迭代对象和列表的区别是什么?

3
在底层,可迭代对象只是列表吗?为什么要有像map、filter、list等包装器?除了它的来源外,filter表示什么意思?在什么情况下(除了在列表推导中更短)x比list(x)更好,其中x是可迭代的?
我听说保持map和filter作为可迭代对象比将它们用作列表更快。这是为什么?在底层有什么区别使得可迭代对象更快?
1个回答

4
可迭代对象和列表的区别就像花和玫瑰之间的区别。
所有的玫瑰都是花,但并非所有的花都是玫瑰。
所有的列表都是可迭代对象,但并非所有的可迭代对象都是列表。
可迭代对象是一种能够逐个返回其成员的对象。可迭代对象包括所有的序列类型(如列表、字符串和元组)。
列表是一个可迭代对象,并且具有一些其他更具体的特征。
请查看此链接:https://docs.python.org/3.5/glossary.html,特别是关于可迭代部分的内容。

1
如此诗意。 - nicolas.leblanc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接