连接元素
操作嵌套列表时非常痛苦,值得高兴的是 pipe 给出了很友好的接口,只需要 chain 一下即可。
In [11]: list([[1, 2], [3, 4], [5]] | chain)
Out[11]: [1, 2, 3, 4, 5]
In [30]: list((1, 2, 3) | chain_with([4, 5], [6]))
Out[30]: [1, 2, 3, 4, 5, 6]
In [31]: list((1, 2, 3) | chain_with([4, 5], [6,[7]]))
Out[31]: [1, 2, 3, 4, 5, 6, [7]]
如你所见,chain 只可以拆开一层,如果要拆开多层嵌套的话,不要慌,traverse 轻松搞定。
In [12]: list([[1, 2], [[[3], [[4]]], [5]]] | traverse)
Out[12]: [1, 2, 3, 4, 5]
结合 select 一起,获取字典中的某个字段属性集合。
In [32]: fruits = [
…: {“name”: “apple”, “price”: [2, 5]},
…: {“name”: “orange”, “price”: 4},
…: {“name”: “grape”, “price”: 5},
…: ]
In [33]: list(fruits
…: | select(lambda fruit: fruit[“price”])
…: | traverse)
…:
Out[33]: [2, 5, 4, 5]
分组
–
对列表中的元素进行分组是必不可少的,在 pipe 中可以使用 groupby 来完成。<