python的镜头库
lenses的Python项目详细描述
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/。