天天看点

ython lambda和startwith的一些用法和总结。

   最近在做数据的分析,用到一些简单的过滤,也学习到了,lambda和startwith的一些用法,下面写个东西备忘,首先了解lambda.这个是一个类似函数的小型用法,跟函数的性质差不多,可以跟filter结合使用:

1

2

3

4

5

<code>&gt;&gt;&gt; xiaoluo </code><code>=</code> <code>lambda</code> <code>x,y:x</code><code>+</code><code>y</code>

<code>&gt;&gt;&gt; </code><code>print</code> <code>xiaoluo(</code><code>1</code><code>,</code><code>2</code><code>)</code>

<code>3</code>

<code>&gt;&gt;&gt; </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>&gt;&gt;&gt; a </code><code>=</code> <code>[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>]</code>

<code>&gt;&gt;&gt; </code><code>filter</code><code>(</code><code>lambda</code> <code>x:x&lt;</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,如需转载请自行联系原作者