python中模拟C#对应Linq的一些操作

也可以说是.net的Linq操作。python版本如果低于3.0不支持lambda,只能单独写函数传参,比较麻烦

先看看函数作为参数有没有问题:

def TestFunc():
    print "!!!"

def Foo(func):
    func()

def main():
    Foo(TestFunc)

#print !!!

经过测试打印出了"!!!",看来还是支持的

模拟一下linq的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

当然返回None并不是默认值,只是测试函数。这里偷懒了

测试打印了1

模拟一下linq的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

时间: 2024-08-01 10:43:06

python中模拟C#对应Linq的一些操作的相关文章

python中对文件、文件夹的操作需要涉及到os模块和shutil模块。

创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件 创建目录:os.mkdir("file") 创建目录 创建多层新目录:def mkdirs(path): # 去除首位空格 path=path.strip() # 去除尾部 \ 符号 path=path.rstrip("\\") # 判断路径是否存在 # 存在 True #

快速入门Python中文件读写IO是如何来操作外部数据的?

读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 >>> f =

python中模拟进度条

文件的write方法并不是直接将文件写入硬盘,而是先写入缓存,等缓存写满等条件满足时再写入磁盘. 有时为了保证数据安全性,需要调用flush来强制数据落盘.同理在标准输出sys.stdout中也有flsuh方法,例如使用sys.stdout来模拟进度条: import sys,time for i in range(20): sys.stdout.write("#") sys.stdout.flush() time.sleep(0.5)

Python中模拟http请求时使用代理

在某些情况下我们有必要设置我们请求时的代理服务器,在哪些情况下自己决定,那么如何设置http请求时的代理呢? 与Python自动处理cookie一样,使用urllib2.build_opener来进行构建. 1 import urllib2 2 3 enable_proxy = True 4 proxy_handler = urllib2.ProxyHandler({"http" : 'http://192.168.1.235:8080'}) 5 null_proxy_handler

Python中模拟超市抹零结账行为代码

在IDLE中创建一个名称为erase-zero.py的文件,然后在该文件中,首先将各个商铺金额累加,计算出商品总金额,并转换为字符串输出,然后再应用int()函数将浮点型的变量转换为整型,从而实现抹零,并转换为字符串输出.关键代码如下图:附件:其他教程导航excel scratch编程 word 软件项目编程等课程优惠券折扣活动集,为方便学员查阅,特整理如下.希望课程可以为您加油助力!课程总目录:http://edu.51cto.com/sd/17277 (敬请收藏) 课程明细:(后续会持续增加

python中模拟接口开发

# 模拟没有开发好的接口# pip install flaskimport flaskimport json server = flask.Flask(__name__) @server.route('/login') # 浏览器访问的名称def welcome(): data = {'code': 0, 'msg': '登录 成功', 'session_id': '123456'} return json.dumps(data, ensure_ascii=False) @server.rout

Python中的指针:有什么意义?

如果您曾经使用过C或C ++等低级语言,那么您可能已经听说过指针.指针允许您在部分代码中创建高效率.它们也会给初学者带来困惑,并且可能导致各种内存管理错误,即使对于专家也是如此.那么它们在Python中的位置,以及如何在Python中模拟指针? 为什么Python没有指针? 事实是我不知道.Python中的指针本身可以存在吗?可能,但指针似乎违背了Python的禅宗.指针鼓励隐含的变化而不是明确的变化.通常,它们很复杂而不是简单,特别是对于初学者.更糟糕的是,他们乞求用脚射击自己的方法,或做一些

Python中xlrd和xlwt模块使用方法

本文主要介绍python中如何使用xlrd.xlwt模块操作excel表格,其中xlrd是读excel,xlwt是写excel的库. 安装xlrd和xlwt模块 默认情况下python是没有xlrd和xlwt模块,需要自行安装.模块安装建议使用pip自动安装.安装方法参考<Python自动安装第三方模块> xlrd模块使用 测试使用excel文档名称为Demo.xlsx,内容如下: 代码如下: # -*- coding: utf-8 -*- import xlrd import xlwt fr

Python中关于列表的具体操作如下实例(待续)

上图为排序操作 Python中删除.修改.添加等操作