Python列表推导式与生成器

简介: 愿你一直充满无限的潜力列表推导式>>> [x+1 for x in range(10) ][1, 2, 3, 4, 5, 6, 7, 8, 9, 10]从上面的代码可以看出,列表推导式是生成一个列表。

愿你一直充满无限的潜力


列表推导式

>>> [x+1 for x in range(10) ]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

从上面的代码可以看出,列表推导式是生成一个列表。

生成器

>>> g=(x+1 for x in range(10))
>>> g
<generator object <genexpr> at 0x7f3af91b7570>
>>> next(g)
1
>>> next(g)
2
>>> next(g)
3
>>> next(g)
4
>>> next(g)
5
>>> next(g)
6
>>> next(g)
7
>>> next(g)
8
>>> next(g)
9
>>> next(g)
10
>>> next(g)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>>

从上面的代码可以看出,生成器的形式和列表推导式差不多,只是括号的不同。

本质区别是列表推导式是一次性生成,而生成器是通过相应的算法推导出来的值,在数据量较大的时候,你不可能一次性生成那么大的列表,生成器是最好的选择。

例如:用生成器产生斐波拉契数列

def fibs(max):
    n,a,b=0,0,1
    while n < max:
        yield b
        a,b = b,a+b
        n+=1

for n in fibs(6):
    print(n)
目录
相关文章
|
9天前
|
存储 索引 Python
深度解密 Python 列表的实现原理
深度解密 Python 列表的实现原理
38 13
|
5天前
|
开发者 索引 Python
探索Python中的列表推导式
【9月更文挑战第33天】本文通过直观的示例和代码片段,深入浅出地介绍了Python中强大的功能——列表推导式。我们将从基础概念出发,逐步深入到高级应用,最后探讨其性能考量。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。
15 8
|
3天前
|
数据处理 开发者 Python
Python编程中的列表推导式:简洁而强大的工具
【9月更文挑战第35天】在Python的众多特性中,列表推导式以其简明扼要和强大功能脱颖而出。本文不仅将介绍列表推导式的基础知识,还将探讨其背后的逻辑,并辅以实际代码示例。无论你是初学者还是有经验的开发者,都能从中获取新的见解和应用技巧。
13 5
|
8天前
|
Python
探索Python中的列表推导式
【9月更文挑战第30天】在编程的世界里,简洁和高效总是我们追求的目标。Python的列表推导式正是这样一把利器,它允许我们在一行代码中生成列表,既清晰又高效。本文将深入浅出地介绍列表推导式的基础知识、高级技巧以及如何避免常见的陷阱,让你的代码更加优雅。
|
10天前
|
Python
30天拿下Python之推导式
30天拿下Python之推导式
17 3
|
10天前
|
机器学习/深度学习 设计模式 大数据
30天拿下Python之迭代器和生成器
30天拿下Python之迭代器和生成器
10 3
|
9天前
|
索引 Python
python列表删除元素
python列表删除元素
20 1
|
12天前
|
Python
Python 选出列表中特定的元素
Python 选出列表中特定的元素
16 3
|
12天前
|
Python
探索Python中的列表推导式
在本文中,我们将深入探讨Python中一个强大且灵活的特性——列表推导式。列表推导式是一种简洁而优雅的方法,用于创建和操作列表。它不仅使代码更易读,还能提高开发效率。通过几个示例,我们将展示列表推导式的多种应用,从基本的操作到复杂的组合,帮助读者更好地理解和利用这一工具。
11 1
|
9天前
|
开发者 Python
探索Python中的列表推导式:一种简洁而强大的工具
【9月更文挑战第29天】在Python的编程世界中,代码的简洁性和可读性总是受到高度赞扬。列表推导式(List Comprehension)作为Python的一个特色功能,不仅能够以简洁的方式生成列表,还能提高代码的执行效率。本文将通过直观的例子和分析,带你深入理解列表推导式的魅力所在,并探讨如何在日常编程中有效利用这一工具来简化代码结构,提升开发效率。