python的镜头库

lenses的Python项目详细描述


https://travis-ci.org/ingolemo/python-lenses.svghttps://codecov.io/gh/ingolemo/python-lenses/branch/master/graph/badge.svg

lens是一个python库,可以帮助您处理大型 数据结构没有改变。它的灵感来自于 haskell,虽然它没有原则性,而且api更适合 对于python。

安装

您可以使用pip like so从pypi安装最新版本:

pip install lenses

您也可以同样卸载:

pip uninstall lenses

文档

镜头库可以自由使用docstring,您可以访问它 与使用pydocshell命令一样,help REPL,或者自己阅读源代码。

大多数用户只需要lenses.UnboundLens中的文档。如果你 希望添加钩子以允许库的某些部分使用自定义 对象,然后您应该签出lenses.hooks模块。大部分 花式镜头代码位于lenses.optics模块中,用于 对一切都很好奇。

examples文件夹和documentation文件夹中给出了一些示例。 在ReadtheDocs上可用。

示例

>>> from pprint import pprint
>>> from lenses import lens
>>>
>>> data = [{'name': 'Jane', 'scores': ['a', 'a', 'b', 'a']},
...         {'name': 'Richard', 'scores': ['c', None, 'd', 'c']},
...         {'name': 'Zoe', 'scores': ['f', 'f', None, 'f']}]
...
>>> format_scores = lens.Each()['scores'].Each().Instance(str).call_upper()
>>> cheat = lens[2]['scores'].Each().set('a')
>>>
>>> corrected = format_scores(data)
>>> pprint(corrected)
[{'name': 'Jane', 'scores': ['A', 'A', 'B', 'A']},
 {'name': 'Richard', 'scores': ['C', None, 'D', 'C']},
 {'name': 'Zoe', 'scores': ['F', 'F', None, 'F']}]
>>>
>>> cheated = format_scores(cheat(data))
>>> pprint(cheated)
[{'name': 'Jane', 'scores': ['A', 'A', 'B', 'A']},
 {'name': 'Richard', 'scores': ['C', None, 'D', 'C']},
 {'name': 'Zoe', 'scores': ['A', 'A', 'A', 'A']}]

format_scores的定义表示“对于数据take中的每个项” 键为'scores'的值,然后是该列表中每个项的值 这是str的一个实例,调用它的upper方法。那个 行相当于此代码:

def format_scores(data):
    results = []
    for entry in data:
        result = {}
        for key, value in entry.items():
            if key == 'scores':
                new_value = []
                for letter in value:
                    if isinstance(letter, str):
                        new_value.append(letter.upper())
                    else:
                        new_value.append(letter)
                result[key] = new_value
            else:
                result[key] = value
        results.append(result)
    return results

许可证

python镜头是免费软件:您可以重新分配和/或修改它 根据 自由软件基金会,或者许可证的第3版,或者 选项)任何更高版本。

这个程序的发布是希望它会有用,但是 没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见GNU将军 公共许可证了解更多详细信息。

你应该收到一份GNU通用公共许可证的副本 用这个程序。如果没有,请参阅http://www.gnu.org/licenses/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
验证Java验证用户输入的一系列数字   java如何在SpringBoot中字段验证失败时在ConstraintViolationException中获取RequestParam名称   java如何解决Vertx阻塞DNS问题   java意外类型平均值   java如何将dataframe的UUID列转换为包含相同十六进制序列的简单字符串?   身份散列映射的java用法   java无法在eclipse中导入现有项目   进程从运行的java程序中获取CPU号   java将文本视图的特定行滚动到顶部在最后一个屏幕上不起作用   无法初始化java SpringSecurityFilterChain   java当我在项目中使用volatile时,为什么下面的代码显示不同的结果?   是否有转换java的标准方法。util。函数,消费者<T>转换为java。util。作用函数<T,Void>   java nginx分块传输编码失败   java如何将几个IF转换为一个循环   java URI从路径中删除/删除