标签: lambda

解释这个Lambda函数Python

在格式化之前,我需要对字典文件进行排序.我使用了list.sort,它把它放在ascii顺序(大写字母小写前).所以我在网上找到了这个代码来进行排序.它有效,但我不完全理解lambda如何使用2个变量和cmp().我很困惑cmp正在比较以及lambda正在使用哪两个变量.请解释lambda如何在sort函数中使用cmp.

f = open("swedish.txt", 'r')
f2 = open("swed.txt", 'w')
doc = f.read().split('\n')

doc.sort(lambda x, y: cmp(x.lower(), y.lower()))

for line in doc:
    f2.write(line + '\n')

f.close()
f2.close()
Run Code Online (Sandbox Code Playgroud)

python sorting lambda

0
推荐指数
1
解决办法
169
查看次数

嵌套3层LINQ查询

我有多个Person对象,每个对象可能包含0个或更多Email对象.我需要搜索针对人员集合的人员,并查找记录,其中Person中包含的电子邮件地址也存在于人员记录集合中的任何一个中.然后我可以采取行动合并这些记录

下面的摘要类结构:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IList<Email> Emails { get; set; }
}


public class Email
{
    public string Label { get; set; }
    public string Address{ get; set; }
    public bool IsPrimary { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我需要找到一个列表并找到具有相同电子邮件地址的人.但是,我无法弄清楚如何构建一个匹配Person的LINQ查询并循环收集Person of obejcts并比较电子邮件地址?

理想情况下,这将是一个lambda,但很想知道创建它的一步一步的过程.

.net c# linq lambda

0
推荐指数
1
解决办法
109
查看次数

lambda中的语法错误

我没有看到错误,除非我遗漏了什么.

loadFiles :: FilePath -> IO [B.ByteString]
loadFiles dir = do
        filePaths <- (getDirectoryContents dir)
        mapM (\x loadFile (dir ++ x)) filePaths
Run Code Online (Sandbox Code Playgroud)

我收到了错误 main.hs:33:37: Parse error in pattern: dir ++ x

lambda haskell

0
推荐指数
1
解决办法
87
查看次数

相同lambda中2个值的总和?

我有以下LINQ查询,我必须分开.Sum进入单独的调用,当我结合它们时,我得到了一个NaN.这不起作用:

var rejectRate = (results.Sum(x => x.TraysRejectedDay / x.TraysProcessedDay)) * 100;
Run Code Online (Sandbox Code Playgroud)

这确实有效:

var traysProcessed = results.Sum(x => x.TraysProcessedDay);
var rejectRate = (results.Sum(x => x.TraysRejectedDay / traysProcessed)) * 100;
Run Code Online (Sandbox Code Playgroud)

这仅仅是LINQ的限制还是我做错了什么?两个字段都是相同的数据类型(double)

c# linq lambda

0
推荐指数
1
解决办法
97
查看次数

Python lambda语法错误?

我无法得到如何使这项工作:

default=lambda obj: return None if isinstance(obj, DataLoader)
Run Code Online (Sandbox Code Playgroud)

default变量是一个参数,json.dumps()所以TypeError如果被序列化的字典包含一个DataLoader对象,代码就可以不上升.

python lambda json

0
推荐指数
1
解决办法
123
查看次数

使用Lambda Expression的SubQuery

我正在使用LINQ子查询来获取数组中所有最小长度的单词.我想用Lambda Expression来做.

var names = new[] { "Tom", "Dick", "Harry", "Mary", "Jay" }.AsQueryable();
(
from n in names
where n.Length == names.Min (n2 => n2.Length)
select n
)
Run Code Online (Sandbox Code Playgroud)

输出:汤姆,杰伊

谢谢,Prakhar

c# linq lambda

0
推荐指数
1
解决办法
1403
查看次数

使用可空值过滤列表

我试图用java lambda expresions替换现有的循环.

我有简单的数据结构,如下所示:

class DbObject{
    private Long objectId;

    private Long basedOnObjectId; //<- this field can be null

    public Long getObjectId() {
        return objectId;
    }

    public void setObjectId(Long objectId) {
        this.objectId = objectId;
    }

    public Long getBasedOnObjectId() {
        return basedOnObjectId;
    }

    public void setBasedOnObjectId(Long basedOnObjectId) {
        this.basedOnObjectId = basedOnObjectId;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个DbObjects列表

我尝试使用指定的basedOnObjectId过滤每个DbObject:

(1) list.stream().filter(object -> obejct.getBasedOnObjectId()
             .equals(basedOnObject.getObjectId()))
             .collect(Collector.of(List))
Run Code Online (Sandbox Code Playgroud)

当然这个代码给了我NullPointer,因为有些od DbObject没有BasedOnObjectId因为它们是根.

很自然的事情是替换字段"Long basedOnObjectId;" 通过可选,但正如我在开始时提到的那样,现有的生产代码是不是快速修复.

所以我试着做一些改变,我评估下面的句子:

 Optional<Long> option = Optional.ofNullable(objectWithNullBasedOnId.getBasedOnObjectId());
Run Code Online (Sandbox Code Playgroud)

并尝试使用.get()方法或.ifPresent(),但.get()也会抛出空指针异常,ifPresent不专用于使用流.

我注意到这一事实,当我有DbObject with null basedOnObjectId时,我不必检查值是否完全为null但只跳过此执行步骤.

所以我决定使用.orElse()方法并返回一些假值.在这种情况下,我返回0L值,因为这个索引在DB中不存在:)

所以我的代码:

 (2) List newList = …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

0
推荐指数
1
解决办法
1291
查看次数

functools.partial与普通的Python函数

我正在学习偏见以及何时使用它们.在这个关于partials vs lambdas的页面中,接受的答案解释了partialsover 的优点之一lambdas是partials具有对内省有用的属性.因此我们可以使用partials来执行以下操作:

import functools
f = functools.partial(int, base=2)
print f.args, f.func, f.keywords

((), int, {'base': 2})
Run Code Online (Sandbox Code Playgroud)

实际上,我们不能这样做lambdas:

h = lambda x : int(x,base=2)
print h.args, h.func, h.keywords

AttributeError: 'function' object has no attribute 'args'
Run Code Online (Sandbox Code Playgroud)

但实际上,我们不能用"普通"Python函数做到这一点:

def g(x) :
  return int(x,base=2) 
print g.args, g.func, g.keywords

AttributeError: 'function' object has no attribute 'args'
Run Code Online (Sandbox Code Playgroud)

为什么partials比普通的Python函数有更多的功能?这种设计的目的是什么?内省被认为对正常功能无用吗?

python lambda partial-application

0
推荐指数
1
解决办法
919
查看次数

转换C#方法以从lambda表达式返回布尔值

以下显然不会编译,所以我应该改变什么?

public bool IsFoobar(bool foo, bool bar)
{
    return db.Foobars.SingleOrDefault(fb => ((fb.foo == foo) && (fb.bar == bar)));
}
Run Code Online (Sandbox Code Playgroud)

c# lambda

-1
推荐指数
1
解决办法
9520
查看次数

C#Lambda表达式

我正在尝试将值从IList集合(此处的实体)复制到stringbuilder as

Entites.Select(n => objStringBuilder.AppendLine(n.Note));
Run Code Online (Sandbox Code Playgroud)

任何人都可以指导我在这里做错了什么?

谢谢!

c# lambda

-1
推荐指数
1
解决办法
202
查看次数

标签 统计

lambda ×10

c# ×5

linq ×3

python ×3

.net ×1

haskell ×1

java ×1

java-8 ×1

java-stream ×1

json ×1

partial-application ×1

sorting ×1