最近在做数据的分析,用到一些简单的过滤,也学习到了,lambda和startwith的一些用法,下面写个东西备忘,首先了解lambda.这个是一个类似函数的小型用法,跟函数的性质差不多,可以跟filter结合使用:
1
2
3
4
5
<code>>>> xiaoluo </code><code>=</code> <code>lambda</code> <code>x,y:x</code><code>+</code><code>y</code>
<code>>>> </code><code>print</code> <code>xiaoluo(</code><code>1</code><code>,</code><code>2</code><code>)</code>
<code>3</code>
<code>>>> </code><code>print</code> <code>xiaoluo(</code><code>3</code><code>,</code><code>4</code><code>)</code>
<code>7</code>
看一下结果:等于是xiaoluo = lambda x,y:print x+y的意思。
<code>>>> a </code><code>=</code> <code>[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>]</code>
<code>>>> </code><code>filter</code><code>(</code><code>lambda</code> <code>x:x<</code><code>2</code><code>,a)</code>
<code>[</code><code>1</code><code>]</code>
看一下startwith也是一个过滤的东西,只是在字符串的开头,在我们还没有用re的情况下:
6
7
<code>#!/usr/bin/env python</code>
<code>import</code> <code>os</code>
<code>f </code><code>=</code> <code>open</code><code>(</code><code>'/etc/passwd'</code><code>,</code><code>'r'</code><code>)</code>
<code>lines </code><code>=</code> <code>f.readlines()</code>
<code>for</code> <code>line </code><code>in</code> <code>lines:</code>
<code> </code><code>if</code> <code>line.startswith(</code><code>"root"</code><code>):</code>
<code> </code><code>print</code> <code>line</code>
返回结果:
root:x:0:0:root:/root:/bin/bash
总结:这两个工具用法虽好,但是有一定的局限性,后期使用re之后就用处不大了,
本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1619241,如需转载请自行联系原作者