Python Language Set: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 35: Line 35:
s2 = s.copy()
s2 = s.copy()
</syntaxhighlight>
</syntaxhighlight>
=Add Elements=
==Add One Element==
<syntaxhighlight lang='py'>
s = set()
s.add('a')
assert 'a' in s
</syntaxhighlight>
==Add Multiple Elements==
Update the set with the union of itself and others, where others can be any iterable. <code>update()</code> eliminates duplicates.
<syntaxhighlight lang='py'>
s = set()
s.update(['a', 'b', 'a'])
assert len(s) == 2
assert 'a' in s
assert 'b' in s
</syntaxhighlight>
=Remove an Element from a Set=
=Remove an Element from a Set=
<syntaxhighlight lang='py'>
<syntaxhighlight lang='py'>

Revision as of 20:35, 5 February 2023

Internal

TODO

Overview

Sets and the __hash__() Function

Sets and the __hash__() Function

Initialization

Literal initialization:

s = {1, 2, 3}

Set from a tuple:

s = set((1, 2, 3))

Set from a list:

s = set([1, 2, 3])

Set from a string:

s = set('ABC')
print(s)  # {'C', 'B', 'A'}

Shallow Copy

s = set()
s.add('a')
s2 = s.copy()

Add Elements

Add One Element

s = set()
s.add('a')
assert 'a' in s

Add Multiple Elements

Update the set with the union of itself and others, where others can be any iterable. update() eliminates duplicates.

s = set()
s.update(['a', 'b', 'a'])
assert len(s) == 2
assert 'a' in s
assert 'b' in s

Remove an Element from a Set

s.remove('a')

Does not return anything, simply removes the element.

If the element does not exist, throws KeyError: 'a'.

Convert to List

s=set()
l=list(s)

frozenset()

The fronzenset() returns an immutable frozenset object initialized with the elements from a given iterable. frozenset objects can be used as dictionary keys.

If the iterable contains duplicate elements, they are ignored (the iterable is handled like a set):

f = frozenset(['a', 'b', 'c'])
f2 = frozenset(['a', 'b', 'c', 'a'])
assert f == f2