Lodash Differences

Naming Conventions

pydash adheres to the following conventions:

  • Function names use snake_case instead of camelCase.
  • Any Lodash function that shares its name with a reserved Python keyword will have an _ appended after it (e.g. filter in Lodash would be filter_ in pydash).
  • Lodash’s toArray() is pydash’s to_list().
  • Lodash’s functions() is pydash’s callables(). This particular name difference was chosen in order to allow for the functions.py module file to exist at root of the project. Previously, functions.py existed in pydash/api/ but in v2.0.0, it was decided to move everything in api/ to pydash/. Therefore, to avoid import ambiguities, the functions() function was renamed.
  • Lodash’s is_native() is pydash’s is_builtin(). This aligns better with Python’s builtins terminology.


There are a few differences between extra callback style support:

  • Pydash has an explicit shallow property access of the form ['some_property'] as in pydash.map_([{'a.b': 1, 'a': {'b': 3}}, {'a.b': 2, 'a': {'b': 4}}], ['a.b']) would evaulate to [1, 2] and not [3, 4] (as would be the case for 'a.b').

Extra Functions

In addition to porting Lodash, pydash contains functions found in lodashcontrib, lodashdeep, lodashmath, and underscorestring.

Function Behavior

Some of pydash’s functions behave differently:


  • pydash doesn’t have template(). See Templating for more details.