Python-还有其他方法可以在列表推导中应用函数和过滤器吗?

乔纳森·瓦纳斯科(Jonathan Vanasco)

多年来一直困扰着我。

鉴于我有一个单词列表:

words = [ 'one', 'two', 'three', '', ' four', 'five ', 'six', \
         'seven', 'eight ', ' nine', 'ten', '']

即使它是超轻量级的,我仍然很奇怪编写以下列表理解:

cleaned = [ i.strip() for i in words if i.strip() ]

我不喜欢两次应用strip()。看起来很傻。

它的速度略微/可以忽略不计,如下所示:

_words = [ w.strip() for w in words ]
cleaned = [ w for w in _words if w ]

这也和

cleaned = [ i for i in [ w.strip() for w in words ] if i ]

我想知道是否还有其他方式可以编写此代码。

我对列表理解的嵌套循环形式非常感兴趣(请参阅Idiom展平浅嵌套列表:它是如何工作的?),但我什么都找不到。

更新

我在github上建立了基准,概述了我最初的3种方法,并在下面共享了这些方法。

最快的是@Martijn Pieters filter(); 将内部列表转换为生成器表达式对速度的影响可以忽略不计,但是对于内存管理来说应该更好(根据python的docs)。

预期所有涉及的速度差异可以忽略不计,不值得分享。

马丁·彼得斯(Martijn Pieters)

生成器表达式:

cleaned = [i for i in (word.strip() for word in words) if i]

使用filter()map()

cleaned = filter(None, map(str.strip, words))

后者在Python 3中产生一个生成器。适用list()于它或map()与列表理解结合使用:

cleaned = [i for i in map(str.strip, words) if i]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python-还有其他方法可以在列表推导中应用函数和过滤器吗?

来自分类Dev

除了“ try ... except”和“ .isdigit()”以外,还有其他方法可以检查Python 2中的用户输入吗?

来自分类Dev

还有其他方法可以验证python3中的命令行参数吗?

来自分类Dev

python中的Goto语句-还有其他方法吗?

来自分类Dev

还有其他方法可以避免在循环python(而不是groupby / transform)内部循环来避免重复结果吗?

来自分类Dev

如何通过python中单词的特定字符拆分僧伽罗语单词。我尝试使用单词的长度。还有其他方法吗?

来自分类Dev

有没有其他方法可以在Python中管理n维数组/矩阵/列表的值分配?

来自分类Dev

Python 2.7.10:除了使用 len() 之外,还有其他方法可以检查输入是否为空

来自分类Dev

有没有其他方法可以解决python中的Remove character?

来自分类Dev

在Crystal中,除了python ast模块还有其他替代方法吗?

来自分类Dev

在python中插入XML文本还有其他可能的方法吗?

来自分类Dev

是否有其他方法可以创建空数组,然后将其填充到Python中?

来自分类Dev

使用OLE工具从Python(Linux)中的VSD(Windows Visio二进制)文件读取数据非常不清楚,是否还有其他方法可以提取数据?

来自分类Dev

python中的lambda和过滤器

来自分类Dev

除了 PHPUnit,还有其他方法可以测试 Symfony 应用程序吗?

来自分类Dev

还有其他方法可以将数组的每个元素传递给函数吗?

来自分类Dev

表解析如何在python中工作?除了美丽的汤,还有其他简便的方法吗?

来自分类Dev

您能否告诉我,而不是python中的反斜杠“ \”,还有其他可用的方法吗?

来自分类Dev

还有其他方法可以正确计算 Am 和 Pm 的时间吗?

来自分类Dev

Python - 通过应用过滤器从列表中创建新列表

来自分类Dev

是否有其他方法可以创建一个空数组,然后将其填充到Python中?

来自分类Dev

Python:有没有一种方法可以解析过滤器中的元组?

来自分类Dev

在SwiftUI中无需使用GeometryReader,还有其他方法可以访问safeAreaInsets吗?

来自分类Dev

还有其他方法可以滤除excel中的空白吗?

来自分类Dev

还有其他方法可以在php中创建pdf吗?

来自分类Dev

还有其他方法可以在javascript中获取对象属性吗?

来自分类Dev

Python 通过 Issubset 或其他方法比较列表列表中的项目

来自分类Dev

如何在python中的2D数组/列表上应用过滤器功能

来自分类Dev

文件中的Python 3阅读列表-其他方括号和引号

Related 相关文章

  1. 1

    Python-还有其他方法可以在列表推导中应用函数和过滤器吗?

  2. 2

    除了“ try ... except”和“ .isdigit()”以外,还有其他方法可以检查Python 2中的用户输入吗?

  3. 3

    还有其他方法可以验证python3中的命令行参数吗?

  4. 4

    python中的Goto语句-还有其他方法吗?

  5. 5

    还有其他方法可以避免在循环python(而不是groupby / transform)内部循环来避免重复结果吗?

  6. 6

    如何通过python中单词的特定字符拆分僧伽罗语单词。我尝试使用单词的长度。还有其他方法吗?

  7. 7

    有没有其他方法可以在Python中管理n维数组/矩阵/列表的值分配?

  8. 8

    Python 2.7.10:除了使用 len() 之外,还有其他方法可以检查输入是否为空

  9. 9

    有没有其他方法可以解决python中的Remove character?

  10. 10

    在Crystal中,除了python ast模块还有其他替代方法吗?

  11. 11

    在python中插入XML文本还有其他可能的方法吗?

  12. 12

    是否有其他方法可以创建空数组,然后将其填充到Python中?

  13. 13

    使用OLE工具从Python(Linux)中的VSD(Windows Visio二进制)文件读取数据非常不清楚,是否还有其他方法可以提取数据?

  14. 14

    python中的lambda和过滤器

  15. 15

    除了 PHPUnit,还有其他方法可以测试 Symfony 应用程序吗?

  16. 16

    还有其他方法可以将数组的每个元素传递给函数吗?

  17. 17

    表解析如何在python中工作?除了美丽的汤,还有其他简便的方法吗?

  18. 18

    您能否告诉我,而不是python中的反斜杠“ \”,还有其他可用的方法吗?

  19. 19

    还有其他方法可以正确计算 Am 和 Pm 的时间吗?

  20. 20

    Python - 通过应用过滤器从列表中创建新列表

  21. 21

    是否有其他方法可以创建一个空数组,然后将其填充到Python中?

  22. 22

    Python:有没有一种方法可以解析过滤器中的元组?

  23. 23

    在SwiftUI中无需使用GeometryReader,还有其他方法可以访问safeAreaInsets吗?

  24. 24

    还有其他方法可以滤除excel中的空白吗?

  25. 25

    还有其他方法可以在php中创建pdf吗?

  26. 26

    还有其他方法可以在javascript中获取对象属性吗?

  27. 27

    Python 通过 Issubset 或其他方法比较列表列表中的项目

  28. 28

    如何在python中的2D数组/列表上应用过滤器功能

  29. 29

    文件中的Python 3阅读列表-其他方括号和引号

热门标签

归档