技术标签: python中list的filter
有的时候使用dir(Module),可以查看里面的方法,但是模块自带的属性"__"开头的也会显示,如下:
>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_Buil
tinMethodType', '_MethodType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_acos', '_c
eil', '_cos', '_e', '_exp', '_hashlib', '_hexlify', '_inst', '_log', '_pi', '_random', '_sin', '_sqrt', '_test', '_test_
generator', '_urandom', '_warn', 'betavariate', 'choice', 'division', 'expovariate', 'gammavariate', 'gauss', 'getrandbi
ts', 'getstate', 'jumpahead', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sam
ple', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>>
这个时候想过滤以"_"或"__"开头的方法,可以:
>>> filter(lambda s: not s.startswith("_"), dir(random))
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', 'betav
ariate', 'choice', 'division', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'jumpahead', 'lognormv
ariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 't
riangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>>
从上面来看,使用filter()函数,结合lambda函数很好的完成了任务。 其他的例子,比如想从一个列表中过滤非数字的字符串列表:
>>> L = ["1234", "ABCD", "BOOK"]
>>> filter(lambda s: s.isdigit(), L)
['1234']
>>>
补充知识:python不同长度列表,对应合并
1. 说明
lis1 = [{‘OS_bit': u'64 \u4f4d',
‘OS_version': ‘10.0.10240',
‘OS_name': u'Microsoft Windows 10 \u4f01\u4e1a\u7248 2015 \u957f\u671f\u670d\u52a1\u65b9\u6848'}]
lis2 = [{‘ip':‘10.20.122.32'}]
lis3 = [{‘CPU_name': u'Intel Core i5-4200H CPU @ 2.80GHz'}]
lis4 = [{‘memory_size': ‘1600MHz',
‘memory_name': u'Physical Memory 0'},
{‘memory_size': ‘1600MHz',
‘memory_name': u'Physical Memory 2'}]
lis5 = [{‘GPU_name': u'NVIDIA GeForce GTX 950M',
‘GPU_size': ‘2G'},
{‘GPU_name': u'Intel HD Graphics 4600',
‘GPU_size': ‘1G'}]
有这五个列表,要求合并成一个列表,并且所有列表的第一元素放在新列表的第一元素,以此类推。
2. 代码
# !/usr/bin/env/python
# _*_coding:utf-8_*_
# Data:2019-04-10
# Auther:苏莫
# Link:QQ2388873062
# Address:https://blog.csdn.net/lingluofengzang
# PythonVersion:python2.7
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
lis1 = [{'OS_bit': u'64 \u4f4d',
'OS_version': '10.0.10240',
'OS_name': u'Microsoft Windows 10 \u4f01\u4e1a\u7248 2015 \u957f\u671f\u670d\u52a1\u65b9\u6848'}]
lis2 = [{'ip':'10.20.122.32'}]
lis3 = [{'CPU_name': u'Intel(R) Core(TM) i5-4200H CPU @ 2.80GHz'}]
lis4 = [{'memory_size': '1600MHz',
'memory_name': u'Physical Memory 0'},
{'memory_size': '1600MHz',
'memory_name': u'Physical Memory 2'}]
lis5 = [{'GPU_name': u'NVIDIA GeForce GTX 950M',
'GPU_size': '2G'},
{'GPU_name': u'Intel(R) HD Graphics 4600',
'GPU_size': '1G'}]
is_all = [lis1,lis2,lis3,lis4,lis5]
#l print lis_all
new_lis = []
for j in range(2):
lis = {}
for i in range(len(lis_all)):
try:
lis = dict(lis, **lis_all[i][j])
except Exception as e:
pass
# else:
new_lis.append(lis)
print new_lis
3.结果
以上这篇Python中使用filter过滤列表的一个小技巧分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
JavaScript 函数语法函数就是包裹在花括号中的代码块,前面使用了关键词 function: function functionname(){// 执行代码}当调用该函数时,会执行函数内的代码。可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript ...
对于想要买显卡的朋友来说,最头疼的莫过于如何去选择一张显卡。就正如大部分人买显卡的时候说:老板,给我一张七彩虹的显卡。这种对白只会让奸商宰得更开心,等到自己对显卡性能有所了解的时候,已经后悔莫及。因此,今天的显卡篇会从如何挑选合适显卡的角度来教大家认清一些参数。 对于显卡的选择,永远都是性能放在首位,其次才需要谈做工和用料。因为显卡的性能集中在显卡核心和显存这两个重...
本文简要介绍了线性回归的原理,适用场景,并结合实例讲解如何使用R语言解决线性回归问题
rng = pd.date_range('3/9/2012 9:30', periods=6, freq='D')ts = pd.Series(np.random.randn(len(rng)), index=rng)ts2012-03-09 09:30:00 0.0700522012-03-10 09:30:00 0.7214492012-03-11 09:30:00 ...
JAVASCRIPT知识点(一)一、JavaScript 简介(一)、JavaScript语言的介绍:JavaScript是基于对象和原型的一种动态、弱类型的脚本语言(二)、JavaScript语言的组成:JavaScript是由核心语法(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)组成的 (三)、JavaScript语言的应用:实现页面表单验证以及页面交互特效,基于Node.js技术进行服务器端编程等二、JavaScript ECMAScript一:基础语法(
高级 Synth 有了最新的 Swing 外观,定制 UI 不在话下
WIN7虚拟网卡安装,WIN7如何添加虚拟网卡由于系统调试需要,在本地安装好了虚拟机后,在外部没有路由器的情况下,电脑无法与虚拟机通信。这个时候可以通过给电脑添加虚拟网卡来实现与内部虚拟机的通信,这样就好像你有了个外部路由一样。我的系统是WIN7的,下面是我添加的全过程截图:1.我的电脑→管理,找到设备管理器,右键添加硬件2.选择高级3.下一
[本API]([https://wkteam.gitbook.io/api/](https://wkteam.gitbook.io/api/))是一套完整的的微信**个人号** 接口,它能监测微信中的各种事件,并辅助微信执行各种操作,提供了客户与微信个人号对接的能力,技术上来讲是一款基于**MAC/IPAD**协议开放性API。杜绝封号,追封,批量封等封号问题,支持多种微信方式接入。你可以 ...
frp内网穿透实现具有公网IP的服务器(Debian9 X64)
Sequelize.js是一款针对nodejs的ORM框架。使用nodejs连接过数据库的人肯定对数据库不陌生了。如果是直接链接,需要自己建立并管理连接,还需要手动编写sql语句。简单的项目到是无所谓,可是一旦项目设计的东西比较复杂,表比较多的时候整个sql的编写就非常的消耗精力。在Java、c#等语言中已经有轻量的数据库框架或者解决...
Python计算机视觉编程图像到图像的映射(一)单应性变换1.1 直接线性变换算法1.2 仿射变换(二)图像扭曲2.1 图像中的图像2.2 分段仿射扭曲2.3 图像配准(三)创建全景图3.1 RANSAC3.2 稳健的单应性矩阵估计3.3 拼接图像图像到图像的映射(一)单应性变换1.1 直接线性变换算法1.2 仿射变换(二)图像扭曲2.1 图像中的图像2.2 分段仿射扭曲2.3 图...