官术网_书友最值得收藏!

Using stateful sets

Python offers several stateful collections, including the set collection. For our purposes, there are two use cases for a set: a stateful set that accumulates items, and frozenset that is used to optimize searches for an item.

We can create frozenset from an iterable in the same way we create a tuple object from an iterable fronzenset(some_iterable) method; this will create a structure that has the advantage of a very fast in operator. This can be used in an application that gathers data, creates a set, and then uses that frozenset to process some other data items.

We may have a set of colors that we will use as a kind of chroma-key: we will use this color to create a mask that will be used to combine two images. Pragmatically, a single color isn't appropriate, but a small set of very similar colors works best. In this case, we'll examine each pixel of an image file to see if the pixel is in the chroma-key set or not. For this kind of processing, the chroma-key colors are loaded into frozenset before processing the target images. For more information, read about chroma-key processing from the following link:

http://en.wikipedia.org/wiki/Chroma_key

As with mappings—specifically the Counter class—there are some algorithms that can benefit from a memoized set of values. Some functions benefit from memoization because a function is a mapping between domain values and range values, a job where mapping works well. A few algorithms benefit from a memoized set, which is stateful and grows as data is processed.

We'll return to memoization in Chapter 16, Optimizations and Improvements.

主站蜘蛛池模板: 依安县| 永吉县| 景泰县| 禄丰县| 桦甸市| 中牟县| 双江| 香港| 壤塘县| 嘉义县| 房山区| 剑阁县| 汝城县| 哈尔滨市| 天峻县| 台江县| 荆门市| 阆中市| 澄迈县| 泾川县| 耒阳市| 外汇| 青州市| 如皋市| 张掖市| 运城市| 象山县| 三门县| 南城县| 龙南县| 钦州市| 竹北市| 呼和浩特市| 新巴尔虎左旗| 龙里县| 贺州市| 雷波县| 济阳县| 寿阳县| 穆棱市| 石嘴山市|