Python 何时使用';对于循环与列表理解';创建新列表?
这里是Python初学者;在Python3中,想知道使用这两种技术的正确时机: 1) For循环Python 何时使用';对于循环与列表理解';创建新列表?,python,list-comprehension,Python,List Comprehension,这里是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] 从一开始它看起来完全一样。两者之间有
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]
从一开始它看起来完全一样。两者之间有什么内在的区别吗
使用列表理解的优点是什么?首先,您将3行代码缩减为一行,任何理解列表理解的人都可以立即识别。其次,第二个代码更快,因为Python将在向列表中添加元素之前首先分配列表的内存,而不必在运行时调整大小。它还可以避免调用“append”,这可能很便宜,但会累加。最后,使用理解的代码被认为更“Pythonic” — 更好地符合Python的风格指南
列表理解:
- 易读
- 更快,因为之前的内存分配
- 更灵活