Python编程之筛选序列中的元素
来源:互联网 发布:淘宝官网电脑版 编辑:程序博客网 时间:2024/05/21 22:45
在许多情况下我们会根据需要对序列中的值根据某些标准进行提取或者删减;通常,最简单的使用方法是使用列表推导式(list comprehension):
#encoding=utf-8if __name__ == '__main__': lst = [1,3,5,7,-3,-4,78,3,-6,-2,-45,90] [print(n) for n in lst if n < 0] print("------------") [print(n) for n in lst if n >= 0]
但是使用列表推导式的一个潜在的缺点是如果原始输入非常庞大的话,这么做可能会产生一个庞大的结果,考虑到这个问题,我们改用生成器表达式通过迭代的方式产生筛选的结果
lst = [1,3,5,7,-3,-4,78,3,-6,-2,-45,90]result = (n for n in lst if n > 0)for x in result: print(x)
有时候筛选的标准没办法简单地表示在列表推导式或者生成迭代器中。比如,假设筛选过程中出现异常或者复杂的细节。基于此,可以讲处理筛选逻辑的代码放到单独的函数中去,然后使用内建的filter()函数处理就可以了
lst = [1,3,5,7,-3,-4,78,3,-6,-2,-45,90,'n/a','s']def is_int(val): try: x = int(val) return True except ValueError: return Falseresult = list(filter(is_int, lst))print(result)
输出结果为:[1, 3, 5, 7, -3, -4, 78, 3, -6, -2, -45, 90]
注意:filter()创建了一个迭代器,因此如果我们想要的是列表形式的结果,请确保外部使用了list() !
阅读全文
0 0
- Python编程之筛选序列中的元素
- Python 去除序列s中的重复元素
- Python核心编程之序列
- 数组中的元素根据关键字筛选
- python之在序列中寻找不同的元素
- JAVA之Set筛选字符元素
- python中的enumerate函数 - 遍历序列中的元素以及它们的下标
- 交换序列a,b 中的元素,使两序列的和之差最小
- Python筛选网页中的网址,下载图片
- python核心编程&序列
- python高效编程技巧3(如何统计序列中元素出现的频率)
- Python高级编程-如何统计序列中元素的出现频度?
- Linux编程之序列化存储Python对象
- Python中的序列
- python中的序列
- python中的序列
- python 中的序列
- Python 序列中的易错点
- 剑指offer---复杂链表复制
- linux 下nginx 的安装重启的时候出现[alert] kill(646, 1) failed (3: No such process)
- 输入一棵二叉树,判断该二叉树是否是平衡二叉树
- NLTK学习笔记(一):语言处理和Python
- 12.5重入
- Python编程之筛选序列中的元素
- 单机数据库优化
- 机器学习基石 2.2 Perceptron Learning Algorithm (PLA)
- java循环结构汇总
- 关于动画过渡(Transition)
- 阿里巴巴 JAVA 开发手册
- hbase 源代码分析 (8) delete 过程 详解
- HDU5816 Hearthstone
- LeetCode(1) Two Sum