闲来无事时积累的一些Linq函数,有时间就更新。

需要注意python版本如果低于3.0不支持lambda,只能单独写函数传参,比较麻烦

1.FirstOrDefault:

def FirstOrDefault(collection, func):
result = filter(func, collection) if len(result) == 0: return None return result[0] def main():
def condition(m): return m < 3
print FirstOrDefault([1,2,3,4], condition) #print 1

返回1

2.Where:

def Where(collection, func):
result = filter(func, collection) if len(result) == 0: return None return result def main():
def condition(m): return m < 3
print Where([1,2,3,4], condition)
#print [1,2]

返回筛选后的数组1,2

3.Distinct:

def Distinct(collection, isContainFunc):
resultList = list() for item in collection:
def firstOrDefaultPredicate(m):
return isContainFunc(m,item) containValue = FirstOrDefault(collection, firstOrDefaultPredicate) if containValue != None:
if not item in resultList:
resultList.append(item) return resultList def main():
tmp = [1,2,2,3,4,3] def compare(x,y):return x==y
result = Distinct(tmp, compare)
print result
#print [1,2,3,4]

去重复,依赖FirstOrDefault。

Python中模拟C# Linq的一些操作的更多相关文章

  1. Python中模拟enum枚举类型的5种方法分享

    这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下   以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...

  2. Python中对 文件 的各种骚操作

    Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...

  3. Python中实现对list做减法操作介绍

    Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...

  4. python中的字符串(str)操作

    字符串是python中数据类型.一般就单引号(‘’)或双引号(“”)引起来的内容就是字符串. 例如:下面两个都是定义字符串 str1 = "hello world" str2 = ...

  5. Python中对字节流/二进制流的操作:struct

    前言 前段时间使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块.查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一 ...

  6. python 中几种基本的矩阵操作应用

    在图像处理中,python 的矩阵运算经常会用到一些简单的操作,可是,由于好久没用,很多东西还是忘记了,这里做个备忘: #-*-coding:utf-8-*- import numpy as np a ...

  7. python中模拟进行ssh命令的执行

    在进行socket编程的时候,可以实现远程执行命令,然后返回相关的结果,但是这种...很容易就把服务器搞挂了. 在这里需要用到commands模块,commands模块中有一个方法为getstatus ...

  8. python中文件的读和写操作

    一.打开文件 data = open("yesterday",encoding="utf-8").read() # python默认的打字符编码是unicode ...

  9. python中几个实用的文件操作

    1. 判断指定目录是否存在: os.path.exists(input_folder) 2. 判断指定目录是不是文件夹 os.path.isdir(input_folder) 3. 判断指定目录是不是 ...

随机推荐

  1. 仿LOL项目开发第四天

    ---恢复内容开始--- 仿LOL项目开发第四天 by草帽 上节讲了几乎所有的更新版本的逻辑,那么这节课我们来补充界面框架的搭建的讲解. 我们知道游戏中的每个界面都有自己的一个类型:比如登陆界面,创建 ...

  2. Android 下文件cannot execute - Permission denied

    安卓下执行交叉编译的可执行文件发现提示不允许. 原因是mount的方式问题,root后运行 su mount -o rw,remount /mnt/sdcard 就可以了 mount -o rw,re ...

  3. Eclipse中安装Maven插件 M2eclipse

    下面是官网的说明,基本上的意思下面有图片说明. To install m2eclipse, use the following Eclipse update site to install the c ...

  4. vxer

    Virus Maker 或者 Virus eXchanger 的简称,(有时候中文也叫做毒客),是一群追求完美.极致代码的病毒程序员. 1.VXer简介: VXer热爱汇编,熟悉各种处理器架构,致力于 ...

  5. vs中debug和release的区别你知道吗

    在Visual Studio中,生成应用程序的时候有2种模式:Debug和Release.两者之间如何取舍呢? 一.vs中debug和release的区别 1.Debug 通常称为调试版本,它包含调试 ...

  6. MapReduce API 基本概念

    在正式分析新旧 API 之前, 先要介绍几个基本概念. 这些概念贯穿于所有 API 之中,因此, 有必要单独讲解. 1.序列化 序列化是指将结构化对象转为字节流以便于通过网络进行传输或写入持久存储的过 ...

  7. 如何用代码方式获取Web.config中system.serviceModel/client节点的address

    以下代码GetAPIAddress将返回:http://localhost:2555/APITEST.asmx using System.Web.Configuration;using System. ...

  8. [Firebase] 3. Firebase Simple Login Form

    Using $firebaseSimpleLogin service. Here we use three methods for login, logout, register and getCur ...

  9. MySQL插值语句

    insert into Daywork( fdayworkId, fuserId, fdate, fhours, fclaimdate ) values ( 2709, '1@2.3', '2013- ...

  10. Tomcat 之 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099;

    错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099; nested exception is:  java. ...