Show More
@@ -158,6 +158,51 b' class baseset(abstractsmartset):' | |||
|
158 | 158 | operation that it should be able to perform. |
|
159 | 159 | |
|
160 | 160 | Every method in this class should be implemented by any smartset class. |
|
161 | ||
|
162 | This class could be constructed by an (unordered) set, or an (ordered) | |
|
163 | list-like object. If a set is provided, it'll be sorted lazily. | |
|
164 | ||
|
165 | >>> x = [4, 0, 7, 6] | |
|
166 | >>> y = [5, 6, 7, 3] | |
|
167 | ||
|
168 | Construct by a set: | |
|
169 | >>> xs = baseset(set(x)) | |
|
170 | >>> ys = baseset(set(y)) | |
|
171 | >>> [list(i) for i in [xs + ys, xs & ys, xs - ys]] | |
|
172 | [[0, 4, 6, 7, 3, 5], [6, 7], [0, 4]] | |
|
173 | >>> [type(i).__name__ for i in [xs + ys, xs & ys, xs - ys]] | |
|
174 | ['addset', 'filteredset', 'filteredset'] | |
|
175 | ||
|
176 | Construct by a list-like: | |
|
177 | >>> xs = baseset(x) | |
|
178 | >>> ys = baseset(i for i in y) | |
|
179 | >>> [list(i) for i in [xs + ys, xs & ys, xs - ys]] | |
|
180 | [[4, 0, 7, 6, 5, 3], [7, 6], [4, 0]] | |
|
181 | >>> [type(i).__name__ for i in [xs + ys, xs & ys, xs - ys]] | |
|
182 | ['addset', 'filteredset', 'filteredset'] | |
|
183 | ||
|
184 | Populate "_set" fields in the lists so set optimization may be used: | |
|
185 | >>> [1 in xs, 3 in ys] | |
|
186 | [False, True] | |
|
187 | ||
|
188 | Without sort(), results won't be changed: | |
|
189 | >>> [list(i) for i in [xs + ys, xs & ys, xs - ys]] | |
|
190 | [[4, 0, 7, 6, 5, 3], [7, 6], [4, 0]] | |
|
191 | >>> [type(i).__name__ for i in [xs + ys, xs & ys, xs - ys]] | |
|
192 | ['addset', 'filteredset', 'filteredset'] | |
|
193 | ||
|
194 | With sort(): | |
|
195 | >>> xs.sort(reverse=True) | |
|
196 | >>> [list(i) for i in [xs + ys, xs & ys, xs - ys]] | |
|
197 | [[7, 6, 4, 0, 5, 3], [7, 6], [4, 0]] | |
|
198 | >>> [type(i).__name__ for i in [xs + ys, xs & ys, xs - ys]] | |
|
199 | ['addset', 'filteredset', 'filteredset'] | |
|
200 | ||
|
201 | >>> ys.sort() | |
|
202 | >>> [list(i) for i in [xs + ys, xs & ys, xs - ys]] | |
|
203 | [[7, 6, 4, 0, 3, 5], [7, 6], [4, 0]] | |
|
204 | >>> [type(i).__name__ for i in [xs + ys, xs & ys, xs - ys]] | |
|
205 | ['addset', 'filteredset', 'filteredset'] | |
|
161 | 206 | """ |
|
162 | 207 | def __init__(self, data=(), datarepr=None, istopo=False): |
|
163 | 208 | """ |
General Comments 0
You need to be logged in to leave comments.
Login now