- Functional Python Programming
- Steven F. Lott
- 277字
- 2021-08-27 19:20:26
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.
- Ceph Cookbook
- Learn to Create WordPress Themes by Building 5 Projects
- Ext JS Data-driven Application Design
- 三維圖形化C++趣味編程
- INSTANT Weka How-to
- Django:Web Development with Python
- HTML5從入門到精通 (第2版)
- Learning jQuery(Fourth Edition)
- Android系統(tǒng)下Java編程詳解
- Web前端開發(fā)技術(shù):HTML、CSS、JavaScript
- Android開發(fā)進(jìn)階實(shí)戰(zhàn):拓展與提升
- 程序員的英語
- Android項(xiàng)目實(shí)戰(zhàn):博學(xué)谷
- HTML5 and CSS3:Building Responsive Websites
- UI設(shè)計(jì)參考手冊(cè)