Python的Lodash?

Python的Lodash?,python,lodash,Python,Lodash,对于Python,是否有库或类似于lodash的东西?我们在API上广泛使用该库,当我们继续创建一系列Python Worker时,创建一个类似于API语法的结构是有意义的。我不确定这是否正是您想要的,但当我想到下划线和Lodash之类的javascript库时,我想到了一些库,它们向一种语言添加了更多的函数式编程函数(尽管我相信下划线和lodash都比这有用一点) 有很多Python库尝试添加一些相同的功能。一个快速的搜索让我找到了pytoolz,我对它没有太多经验,但看起来很有趣。如果这不是

对于Python,是否有库或类似于lodash的东西?我们在API上广泛使用该库,当我们继续创建一系列Python Worker时,创建一个类似于API语法的结构是有意义的。

我不确定这是否正是您想要的,但当我想到下划线和Lodash之类的javascript库时,我想到了一些库,它们向一种语言添加了更多的函数式编程函数(尽管我相信下划线和lodash都比这有用一点)

有很多Python库尝试添加一些相同的功能。一个快速的搜索让我找到了pytoolz,我对它没有太多经验,但看起来很有趣。如果这不是您想要的,请尝试搜索其他函数式编程python库,直到找到您喜欢的函数式编程python库为止

希望帮助与lodash完全一样,只适用于Python。

可以在Python中用作lodash的替代品。它几乎涵盖了所有内容,函数的名称也很相似,只是保持python的约定不变

重要提示:我已经使用pydash大约07个月了,它对我帮助很大。您不应该忘记的一件事是,避免直接在self上使用pydash函数,它的行为非常不稳定,并给出随机结果。我在下面展示一个例子

示例类

class MyClass:
    def get(self):
       self.obj = {}
       self.obj['a'] = True
用法 类TestClass: def初始化(自身): self.inst=MyClass()


谢谢你的建议,我想我真正想要的是能够轻松使用数组、字典和类型。使用库可以通过哪些方式改进你的工作流程,比如使用生成器、理解、FunctionTools(映射、筛选、减少等)和lambdas,而不用使用数组、列表、集合和Dicts?我理解您想要一个与您已经使用过的工具类似的工具,但是当您充分使用Python时,它的功能已经存在。虽然到目前为止链接的两个模块(pytoolz和pydash)都包含了lodash/下划线的仿真,但它们实际上只是对基本python功能的粉饰;理解这种语言比在你知道的东西上进行改进要好。我同意,但我们只是让我们的NodeJS团队更容易进入我们的Python项目。Python开发人员理解这些库的功能要比NodeJS开发人员学习Python容易得多。我希望弥合这一差距,缩短学习曲线。与大多数开发人员一样,在某种程度上好奇心会占据主导地位,我们的NodeJS开发人员可能希望了解幕后发生的事情。下面是一个例子:python中的u.get(w,'x.y.z')如果执行w.x.y.z,如果w、x或y为null,则会抛出异常。使用u0.get,您将返回空值instead@JeffLangemeier我不同意。pydash(和lodash)提供了开发人员最需要/使用的助手函数。诚然,其中一些代码很容易用普通Python编写,但很多代码都不是。如果你处于一个位置:你自己使用PydAsvs写助手函数,那么你应该考虑PydAh函数已经被测试、优化并与Python 2.7和3兼容,而不是提到它已经被写入。在我的工作中,我需要满足上述所有标准,使用pydash/lodash可以节省我很多时间。作为奖励,我阅读了pydash代码来改进我的python。@m4js7er,因为您愿意在一年前对我的回复进行necro;您是否愿意提供通过pydash提供的“难以优化”lambda/函数式编程范例的具体示例?我的观点仍然是,JS和Python是不同的语言,具有不同的范例和不同的应用程序。。。从JS中获取一些东西并尝试将其批量移植到Python可能会由于语言的差异而给用户带来意想不到的结果。这正是我想要的!谢谢。请注意,如果您有一个包含对象的大数组,pydash在某些方法中的性能非常差,例如pydash.arrays.uniq。我在这方面已经遇到了问题。使用
\uuu
不是一个好主意。请将其更改为其他变量名,如pydash文档中显示的
py\ucode>。
   def test_function(self):
      # **Not Recommended Method**
      # _.get(self, "inst.a")    # shows random behavior

      # **Highly recommended**
      _.get(self.inst, "a")     # Will always return True