Python学习小技巧之列表项的推导式与过滤操作
本文介绍的是关于Python中列表项的推导式与过滤操作的相关内容,分享出来供大家参考学习,下面来一起看看吧:
典型代码1:
data_list = [1, 2, 3, 4, 0, -1, -2, 6, 8, -9] data_list_copy = [item for item in data_list] print(data_list) print(data_list_copy)
输出1:
[1, 2, 3, 4, 0, -1, -2, 6, 8, -9] [1, 2, 3, 4, 0, -1, -2, 6, 8, -9]
典型代码2:
data_list = [1, 2, 3, 4, 0, -1, -2, 6, 8, -9] data_list_copy = [item for item in data_list if item > 0] print(data_list) print(data_list_copy)
输出2:
[1, 2, 3, 4, 0, -1, -2, 6, 8, -9] [1, 2, 3, 4, 6, 8]
应用场景
需要保持原列表不被改动,需要拷贝一份新的列表数据;只拷贝原列表中复合条件的数据项。
带来的好处
拷贝和过滤操作集中到了一行中,减少了代码的缩进级别,使代码更加紧凑,更易读
其它说明
1. 原始的数据源可以不是列表类型,也可以是元组、生成器等任何可迭代类型
2. 内置的filter函数也可以达到类似的效果
3. itertools模块中的ifilter和ifilterfalse的方法也可以达到类似的效果
4. 如果列表数据量巨大,需要慎重使用,注意内存消耗
总结
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
在Python下使用Txt2Html实现网页过滤代理的教程
在撰写本 developerWorks 系列文章的过程中,我曾遇到过以最佳格式进行撰写的问题.文字处理程序格式都是专用的,在格式之间转换总不能尽如人意,也很麻烦(而且每种格式都会各自将文档绑定到不同的专用工具,这种情况又与开放源码的精神相违背).HTML 还算中立 -- 也许您现在阅读的文章正是这种格式 -- 但它也添加了标记,而这些标记很容易引起误输入(或者使人束缚于 HTML 增强型编辑器).DocBook 是一种有趣的 XML 格式,它可以转换成许多目标格式,并且它拥有技术文章(或书籍)的
-
Python过滤列表用法实例分析
本文实例讲述了Python过滤列表用法.分享给大家供大家参考,具体如下: 过滤列表 [mapping-expression for element in source-list if filter-expression] 以 if 开头的是过滤器表达式,过滤器表达式可以是返回值为真或者假(在 Python 中是 几乎任何东西)的任何表达式.任何经过滤器表达式演算值为元素的真都可以包含在映射中.其它的元素都将忽略,它们不会进入映射表达式,更不会包含在输出列表中. >>> li = [&qu
-
python 数据清洗之数据合并、转换、过滤、排序
前面我们用pandas做了一些基本的操作,接下来进一步了解数据的操作, 数据清洗一直是数据分析中极为重要的一个环节. 数据合并 在pandas中可以通过merge对数据进行合并操作. import numpy as np import pandas as pd data1 = pd.DataFrame({'level':['a','b','c','d'], 'numeber':[1,3,5,7]}) data2=pd.DataFrame({'level':['a','b','c','e'], '
-
Python数组条件过滤filter函数使用示例
使用filter函数,实现一个条件判断函数即可. 比如想过滤掉字符串数组中某个敏感词,示范代码如下: #filter out some unwanted tags def passed(item): try: return item != "techbrood" #can be more a complicated condition here except ValueError: return False org_words = [["this","is
-
Python正则获取、过滤或者替换HTML标签的方法
本文实例介绍了Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法,具体内容如下 python正则表达式关键内容: python正则表达式转义符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \D 匹配任意非数字的字符 \B 匹配不是单词开头或结束的位置 [^
-
Python过滤函数filter()使用自定义函数过滤序列实例
filter函数: filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤.最终一次性返回过滤后的结果. filter()函数有两个参数: 第一个,自定函数名,必须的 第二个,需要过滤的列,也是必须的 DEMO 需求,过滤大于5小于10的数: 复制代码 代码如下: # coding=utf8 # 定义大于5小于10的函数 def guolvhanshu(num): if num>5 and num<
-
Python实现过滤单个Android程序日志脚本分享
在Android软件开发中,增加日志的作用很重要,便于我们了解程序的执行情况和数据.Eclipse开发工具会提供了可视化的工具,但是还是感觉终端效率会高一些,于是自己写了一个python的脚本来通过包名来过滤某一程序的日志. 原理 通过包名得到对应的进程ID(可能多个),然后使用adb logcat 过滤进程ID即可得到对应程序的日志. 源码 复制代码 代码如下: #!/usr/bin/env python #coding:utf-8 #This script is aimed to grep
-
python数组过滤实现方法
本文实例讲述了python数组过滤实现方法.分享给大家供大家参考.具体如下: 这段代码可以按照指定的条件过滤数组内的元素,返回过滤后的数组 li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"] print [elem for elem in li if len(elem) > 1] pr
-
Python中实现从目录中过滤出指定文件类型的文件
最近学习下python,将从指定目录中过滤出指定文件类型的文件输出的方法总结一下,供日后查阅 复制代码 代码如下: #!/usr/bin/env python import glob import os os.chdir("./") for file in glob.glob("*.py"): print file print "#######Another One##########" for file in os.listdir("
-
用Python实现协同过滤的教程
协同过滤 在 用户 -- 物品(user - item)的数据关系下很容易收集到一些偏好信息(preference),比如评分.利用这些分散的偏好信息,基于其背后可能存在的关联性,来为用户推荐物品的方法,便是协同过滤,或称协作型过滤(collaborative filtering). 这种过滤算法的有效性基础在于: 用户的偏好具有相似性,即用户是可分类的.这种分类的特征越明显,推荐的准确率就越高 物品之间是存在关系的,即偏好某一物品的任何人,都很可能也同时偏好另一件物品 不同环境下这两种
-
Python实现简单过滤文本段的方法
本文实例讲述了Python实现简单过滤文本段的方法.分享给大家供大家参考,具体如下: 一.问题: 如下文本: ## Alignment 0: score=397.0 e_value=8.2e-18 N=9 scaffold1&scaffold106 minus 0- 0: 10026549 10007782 2e-75 0- 1: 10026550 10007781 8e-150 0- 2: 10026552 10007780 1e-116 0- 3: 10026555 10007778 0 0
-
Python 过滤字符串的技巧,map与itertools.imap
具体的实例 我们需要在目录中遍历,包括子目录(哈哈),找出所有后缀为:rmvb ,avi ,pmp 的文件.(天哪?!你要干什么?这可是我的隐私啊--) 复制代码 代码如下: import os def anyTrue(predicate, sequence): return True in map(predicate, sequence) def filterFiles(folder, exts): for fileName in os.listdir(folder): if os.path.
随机推荐
- AngularJS的内置过滤器详解
- Laravel 5.4因特殊字段太长导致migrations报错的解决
- shell编程中的字符串截取方法小结
- iOS实时录音和播放功能
- JS实现线性表的顺序表示方法示例【经典数据结构】
- golang中strconv.ParseInt函数用法示例
- Javascript在IE或Firefox下获取鼠标位置的代码
- 轻松玩转Java配置的Classpath
- 删除select中所有option选项jquery代码
- wsttrs.exe bat专杀附exe专杀
- Rcmd.vbs 1.01修正版 增加了下载功能
- node.js中的fs.rmdir方法使用说明
- Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据实例
- js识别uc浏览器的代码
- MyEclipse安装JS代码提示的教程(Spket插件)
- 玩转vue的slot内容分发
- 初学者从源码理解MySQL死锁问题
- Python登录系统界面实现详解
- Python subprocess模块功能与常见用法实例详解
- Python基于opencv实现的简单画板功能示例