我正在浏览文档,并遇到了以下示例:
> student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10), ]
> sorted(student_tuples, key=lambda student: student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
我不明白的是这里的lambda和学生是什么?可以用其他任何名称代替它们吗?和什么:
做的student:student[2]
?这有点模棱两可,因为我以前从未遇到过。
从语义上说:
print sorted(student_tuples, key=lambda student: student[2])
与此相同:
def sort_key(student):
return student[2]
print sorted(student_tuples, key=sort_key)
lambda
只是为函数定义提供了另一种语法。结果是一个函数对象,就像由创建的对象一样def
。但是,有些lambda
功能是功能无法完成的,例如定义新变量。它们非常适合(取决于您要问的人)创建较小的一次性功能,例如此功能。
一旦了解了这一点,那么您所要做的就是key
接受一个函数,在传递给的序列中的每个值上调用该函数sorted
,并根据key
如果对它们自己排序的相应值所采用的顺序对这些值进行排序。
问题内容: 我有一个使用100%Java编写的大型现有代码库,但是我想在它的一些新部分中使用Python。我需要进行一些文本和语言处理,而我宁愿使用Python和类似NLTK的库来执行此操作。 我知道Jython项目,但这似乎代表了一种从Python内部使用Java及其库的方法,而不是相反的方式-我对此是否错? 如果没有,那么在Java和Python之间进行交互的最佳方法是什么,这样(理想情况下)
问题内容: 我需要使用python处理XSLT,目前我正在使用仅支持XSLT 1的lxml,现在我需要处理XSLT 2,有没有办法在Python中使用saxon XSLT处理器? 问题答案: 有两种可能的方法: 设置一个接受转换请求的HTTP服务,并通过从Java调用Saxon来实现它们;然后您可以通过HTTP通过Python发送转换请求 使用Saxon / C产品 (当前在预发行版中可用) :此
问题内容: 我在玩耍时偶然发现了Python中的一个函数。我想不出需要此功能的情况,除了可能是语法糖。谁能举一个例子? 问题答案: 并且是一种方便快捷的方法,可以动态地获取一些源代码,也许要稍加修改然后再执行- 但是,它们从来不是最好的方法,尤其是在生产代码中,而不是“快速而又简单”脏”的原型&c。 例如,如果我不得不处理这样的动态Python源代码,那么我会使用ast模块-比得多(比它更安全(您
问题内容: 我正在寻找可以解释如何使用而不是的基础知识。 我的问题是尝试使用一个类的方法/函数返回数据,然后将数据放入另一个方法/函数中。在这种情况下,也许更简单的方法会更好,但是我试图了解类是如何工作/使用的。这个问题似乎取决于,这是我试图对此进行相当简单的使用。 尽管问题不完全相同,但我遵循的是Python The Hard Way,ex42 —循环@第18-41行。 我尝试编写一个,并改用,
我得到了我的旋转值从OPI0到我的电脑,现在我想让一个物体在我的陀螺仪面对的方向旋转(度数值从180到-180)我对Python相当陌生。glRotatef(1,xrot,yrot,zrot)只设置当前旋转的旋转。但是我实际上想要的是,如果它是180度,我想把它放到180度。这可以通过获取当前旋转来归档,测试它是否变小或变大,然后调整旋转或用命令设置旋转到度数值。所以我的主要问题是:有没有设置创建
本章介绍如何使用Python编程语言对JSON对象进行编码和解码。让我们从准备环境开始,使用Python for JSON开始编程。 环境 在开始使用Python编码和解码JSON之前,需要安装任何可用的JSON模块。在本教程中,我们已经下载并安装了Demjson,如下所示 $tar xvfz demjson-1.6.tar.gz $cd demjson-1.6 $python setup.p