转,Python中模拟C# Linq的一些操作

it2022-05-09  28

自:https://www.cnblogs.com/hont/p/5002913.html

 

闲来无事时积累的一些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。

转载于:https://www.cnblogs.com/ijunxiong/articles/10375107.html


最新回复(0)