是否存在与Haskell’let’表达式等效的Python,该表达式使我可以编写以下内容:
list2 = [let (name,size)=lookup(productId) in (barcode(productId),metric(size))
for productId in list]
如果没有,那么 最易读的 替代方法是什么?
添加以澄清let语法:
x = let (name,size)=lookup(productId) in (barcode(productId),metric(size))
相当于
(name,size) = lookup(productId)
x = (barcode(productId),metric(size))
不过,第二个版本在列表理解方面效果不佳。
您可以使用临时列表理解
[(barcode(productId), metric(size)) for name, size in [lookup(productId)]][0]
或等效地,生成器表达式
next((barcode(productId), metric(size)) for name, size in [lookup(productId)])
但是这两个都太可怕了。
另一种(可怕的)方法是通过临时lambda,您立即调用
(lambda (name, size): (barcode(productId), metric(size)))(lookup(productId))
我认为建议的“ Pythonic”方式只是定义一个函数,例如
def barcode_metric(productId):
name, size = lookup(productId)
return barcode(productId), metric(size)
list2 = [barcode_metric(productId) for productId in list]
问题内容: 当搜索复杂的JSON数组和哈希中的项目时,例如: 我可以使用某种查询语言来查找商品吗? 问题答案: 是的,它称为JSONPath。源码现在在GitHub上。 它还集成到DOJO中。
问题内容: 我为一位同伴编写了一个网络刮板,以节省他的工作时间。它是使用,使用和打开Firefox浏览器编写的。 我已经在使用的Linux机器上亲自编写了此代码,因此Firefox实际上不会打开并干扰我的工作。 如何使其在Windows PC的虚拟显示器中运行? 问题答案: 您无法在Windows上运行的原因是PyVirtualDisplay使用Xvfb作为其显示,而Xvfb是X Window S
问题内容: 好的,我想知道的是Java有什么方法可以执行以下Python可以做到的… 因为在我看来Java可以使您获得相同的结果(我特别需要每次使用2个数字,而缺少-1来表示最后一个字符) 我还没有用Java来研究数组/列表,所以真正希望Java比这更容易 编辑:将string_sample [3]的“ i”修改为“ l”。很好看的Maroun! 问题答案: 抱歉,Java的灵活性不如Python
问题内容: 有人知道类似于JavaRobot的Python类吗? 具体来说,我想在Ubuntu中执行屏幕抓取,并最终跟踪鼠标单击和键盘按下(尽管这是一个稍微不同的问题)。 问题答案: 如果您有GTK,则可以使用gtk.gdk.Display类来完成大部分工作。它控制键盘/鼠标指针获取一组对象。
问题内容: 我需要使用字符串参数并在Python中创建以该字符串命名的类的对象。在Java中,我会使用。在Python中是否有等同功能? 感谢你的答复。回答那些想知道我在做什么的人:我想使用命令行参数作为类名,并实例化它。我实际上是在Jython中编程并实例化Java类,因此是问题的Java实质。 效果很好。非常感谢。 问题答案: python中的反射比Java中的反射更容易,更灵活。 没有直接函
我是一个JaxB noob,但我学到了很多关于如何配置Jackson的知识。我正在为一些域对象类添加XML序列化/反序列化支持。我有一个类类型,它根据必须指定的上下文进行不同的序列化/反序列化。 通过编写HandlerInstantiator的自定义实现,我在Jackson中实现了这一点。自定义实现将上下文作为构造函数参数。当这些上下文敏感对象需要序列化器或反序列化器时,提供它的方法会使用构造处理
问题内容: 有人知道类似于JavaRobot的Python类吗? 具体来说,我想在Ubuntu中执行屏幕抓取,并最终跟踪鼠标单击和键盘按键(尽管这是一个稍微不同的问题)。 问题答案: 如果您有GTK,则可以使用gtk.gdk.Display类来完成大部分工作。它控制键盘/鼠标指针获取一组对象。
问题内容: Java具有格式字符串的概念,与其他语言的格式字符串非常相似。它用于诸如输出转换之类的JDK方法中。 我想知道在Java中是否有类似于C的输入转换方法? 问题答案: 看一下该站点,它解释了两种使用java中的控制台读取的方法,使用或使用System.in中的经典方法。 以下代码摘自引用的网站: - 问候。