何时使用“For 循环 vs 列表理解”来创建新列表?

Python初学者在这里;在 Python3 中,想知道使用这两种技术的正确时机:1)For 循环


l_1=[1, 2, 3]

l_2=list()

for i in range(len(l_1)):

    l_2.append(l_1[i])

print(l_2)   #[1, 2, 3]

2)列表理解


l_1=[1, 2, 3]

l_3=[l_1[i] for i in range(len(l_1))]

print(l_3)  #[1, 2, 3]

从一开始,它看起来完全一样。两者之间有什么本质区别吗?


当年话下
浏览 194回答 1
1回答

呼唤远方

使用列表推导式的优点是什么?首先,您将 3 行代码缩减为 1 行,任何了解列表推导式的人都可以立即识别。其次,第二个代码更快,因为 Python 将首先分配列表的内存,然后再向其中添加元素,而不必在运行时调整大小。它还可以避免必须调用“附加”,这可能很便宜但加起来。最后,使用推导式的代码被认为更“Pythonic”——更符合 Python 的风格指南。Python 的列表推导:用途和优势,Luciano Strika列表理解:更容易阅读更快,因为先前的内存分配For循环:更灵活
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python