列表推导式

列表推导式的知识点:

1.列表推导式就是利用其他列表创建新的列表。

2.支持if条件判断

3.可以使用多个for

 

列表推导式是利用其他列表创立新的列表,它的工作方式类似于for循环。

就像这样:

>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

for循环是这样:

for m in range(10):
    print(m**2)

列表表推导式还支持if判断

>>> [x*x for x in range(10) if x%3 == 0]
[0, 9, 36, 81]

列表推导式可以支持多个for语句

>>> [(x,y)for x in range(3)for y in ['kebi','maoxian','xiaoniao']]
[(0, 'kebi'), (0, 'maoxian'), (0, 'xiaoniao'), (1, 'kebi'), (1, 'maoxian'), (1, 'xiaoniao'), (2, 'kebi'), (2, 'maoxian'), (2, 'xiaoniao')]

相对于for循环是这样:

result = []
name = ['kebi','maoxian','xiaoniao']
for x in range(3):
    for y in name:
        print((x,y))

有个不错的例子:有两个新的列表,要求把首字母相同的元素放在一起创建一个新的列表。

就像下面这样:

>>> girls = ['alice','bernice','clarice']
>>> boys = ['chris','arnold','bob']

>>> [b+'+'+g for b in girls for g in boys if b[0] == g[0]]
['alice+arnold', 'bernice+bob', 'clarice+chris']

在列表里面写条件就是列表推导式,在元祖里面会怎样了?

复制代码
>>> (x*y for x in [1,2,3] for y in (4,5,6))
<generator object <genexpr> at 0x7f254bae0d00>    :返回的是一个可迭代的对象。
>>> for i in (x*y for x in [1,2,3] for y in (4,5,6)):
...     print(i)
... 
4
5
6
8
10
12
12
15
18
复制代码

 

posted @   明王不动心  阅读(203)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示