首页/文章/ 详情

Python列表推导式

3月前浏览833

‌‌列表推导式是‌    中一种非常强大的语法结构,它提供了一种简明扼要的方法来创建列表。‌ 列表推导式通过将循环和条件判断结合,避免了冗长的代码。

下面是一个列表推导式,表示我们希望将列表    中的每个元素加上1:

>>>  [x+1 for x in [10,20,30]]
[11,21,31]

类似地,我们可以用以下列表推导式将列表    中的每个元素变为自身的3倍:

>>>  [x*3 for x in [10,14,41]]
[30,42,123]

一般来说,列表推导式使用以下语法:

 

其中    是任意一个输入函数或表达式,而    通常是一个列表。(但是,    也可以是字符串。)请注意,    与    相同,同样是将函数    映射到列表    中的每个元素    上。

>>>  [len(s) for s in ['I','like''spam'] ]
[1,44]

这和使用    函数一样

>>>  list(map(len, ['I','like',spam'] ) )
[1,4,4]

   函数得到的是一个可迭代对象,需要用    将其展开。

通过在表达式的末尾添加    和布尔值测试,列表推导式还具有    函数的功能。例如:

>>> words =['oh''darn', wow', 'spam', 'ugh']
>>> [x for x in words if len(x)== 4]
['
darn', 'spam']

在这个例子中,我们定义了列表    来说明原始列表不必是匿名的。无论是否命名,列表推导式都一样:

>>>[x for x in ['oh''darn''wow''spam''ugh']if len(x)== 4]
'darn''spam']

这就相当于一个循环表达式内嵌一个    结构:

words =['oh''darn', wow', 'spam', 'ugh']
for x in words:
    if len(x)== 4:
        print(x)

因此,我们自然会想到这样的写法:

>>>[x[1:3for x in ['oh''darn''wow''spam''ugh']if len(x)== 4]
'ar''pa']

一般来说,为列表推导式添加    的语法为:

 

其中    是一个函数,    是一个列表,在省略号    位置出现的是一个谓词表达式,其值为    或    。其结果是一个    值的列表,仅针对谓词表达式为    的那些    值。你选择组合使用    、    和    ,还是使用列表推导式,更多的是因为偏好,而不是因为它们能力不同。

在线性互补算法的    代码使用了列表推导式。


来源:数值分析与有限元编程
UGpython
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-01
最近编辑:3月前
太白金星
本科 慢慢来
获赞 6粉丝 17文章 327课程 0
点赞
收藏
作者推荐

变分法预备定理

变分法也称变分方法或变分学是17世纪末开始发展起来的数学分析的一个分支,它是研究依赖于某些未知函数的积分型泛函极值的一门科学。简言之,求泛函极值的方法称为变分法。求泛函极值的问题称为变分问题或变分原理。定理如果函数 在区间 上连续,函数 满足以下条件:①一阶或若干阶可微;②在区间 的端点处为零,即 ;③ 和 均有界。若积分 则在区间 上必有 .证明代数法令 则 由于 ,且在 上,,要使(1)成立,则必有 。反证法假设存在 ,使得由于 在 处连续,所以存在,当 时,.选取函数 ,使其满足:① 时,;② 或 时, ;③ 在 上有连续导数。令 ,显然 也满足上述三条性质,且对于任意,只要选取适当的常数 ,便可使 。此时积分 这一结果与(1)相矛盾,因此 在 处一定为零,而 又是在区间 任意选取的,所以 在区间 处处为零,即 来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈