全部博文(2065)
分类: Python/Ruby
2010-06-11 08:51:27
python中的set集合学习
时间:
集合:相关数据对象集.
介绍
A set is, perhaps the simplest
possible container, since it contains objects in no particular order with no
particular identification. Objects stand for themselves. With a sequence,
objects are identified by position. With a mapping, objects are identified by
some key. With a set, objects stand for themselves.
Since each object stands for itself,
elements of a set cannot be duplicated. A list or tuple, for example, can have
any number of duplicate objects. For example, the tuple ( 1, 1, 2, 3 ) has four
elements, which includes two copies of the integer 1; if we create a set from
this tuple, the set will only have three elements.
A set has large number of operations
for unions, intersections, and differences. A common need is to examine a set
to see if a particular object is a member of that set, or if one set is
contained within another set.
A set is mutable, which means that it
cannot be used as a key for a dict for more information.) In order to use a set
as a dict key, we can create a frozenset, which is an immutable copy of the
original set. This allows us to accumulate a set of values to create a dict
key.
集合的三义性:确定性、唯一性、无序性
A number of built-in functions create or process sets.
len(object ) → integer
Return the number of items of a set.(集合中的元素个数)
max(set ) → value (一个集合里面最大的元素)
With a set, return its largest item
min(set ) → value
With a set, return its smallest item.
示例:
>>> a=set((2,4,5,6))
>>> print len(a)
4
>>> print max(a)
6
当前这个集合中我们定义了这几个方法包括读集合的最大值、最小值、长度等
Set Methods
A set object has a number of member methods. In the
following definitions, s is a set object.
The following transformation functions update a set.
s.clear
Remove all items from the set.
s.copy → set
Copy the set to make a new set. This is a
shallow copy. All objects in the new set are references to the same objects as
the original set.
s.pop → object
Remove an arbitrary object from the set,
returning the object. If the set was already empty, this will raise a KeyError
exception.
s.add(new) a.add(1)
Adds element new to the set. If the object is
already in the set, nothing happens.
s.remove(old)
Removes element old from the set. If the
object old is not in the set, this will raise a KeyError exception.
s.discard(old)
Removes element old from the set. If the
object old is not in the set, nothing happens.
s.update(new) → object
Merge values from the new set into the
original set, adding elements as needed. It is equivalent to the following
Python statement. s |= new.
s.intersection_update(new) → object
Update s to have the intersection of s and
new. In effect, this discards elements from s, keeping only elements which are
common to new and s. It is equivalent to the following Python statement. s
&= new.
s.difference_update(new) → object
Update s to have the difference between s and
new. In effect, this discards elements from s which are also in new. It is
equivalent to the following Python statement. s -= new.
s.symmetric_difference_update(new) → object
Update s to have the symmetric difference
between s and new. In effect, this both discards elements from s which are common
with new and also inserts elements into s which are unique to new. It is
equivalent to the following Python statement. s ^= new.
The following accessor methods provide information about
a set.
s.issubset(set) → boolean
If s is a subset of set, return True,
otherwise return False. Essentially, this is s <= set.
s.issuperset(set) → boolean
If s is a superset of set, return True,
otherwise return False. Essentially, this is s >= set.
s.union(new) → set
If new is a proper set, return s | new. If
new is a sequence or other iterable, make a new set from the value of new, then
return the union, s | new. This does not update s.
>>> prime.union( (1, 2, 3, 4, 5) )
set([1, 2, 3, 4, 5, 7, 11, 13])
s.intersection(new) → set
If new is a proper set, return s & new.
If new is a sequence or other iterable, make a new set from the value of new,
then return the intersection, s & new. This does not update s.
s.difference(new) → set
If new is a proper set, return s - new. If
new is a sequence or other iterable, make a new set from the value of new, then
return the difference, s - new. This does not update s.
s.symmetric_difference(new) → set
If new is a proper set, return s ^ new. If
new is a sequence or other iterable, make a new set from the value of new, then
return the symmetric difference, s ^ new. This does not update s.