Escriu per cercar…

Set

Set (Conjunt)

Una alternativa a les llistes és el set (conjunt); que permeten agrupar elements amb aquestes carecteristiques.

  • S’utilitzen quan vols tenir un conjunt d’elements que no es repeteixin.
  • Els elements no tenen ordre, (realment tenen ordre d’inserció), quan començes a utilitzarlos amb diferents operacions, aquest ordre es pot perdre. És una de les limitacions respecte les llistes.
  • Es poden realitzar operacions d’àlgebra entre conjunts: unió, intersecció, diferència …

Creem un set, i hi afegim elements, fixem-nos que encara que li afegim elements duplicats simplement no els afegeix.

```py

num_set: set = set() num_set.add(1) num_set.add(1) num_set.add(1) num_set.add(2) num_set.add(2) num_set

>  {1, 2}


La longitud s'obté amb el mètode `len`, com la llista.

    ```py
len(num_set)

2

Si volem treure l’últim element, usem pop.

```py

num_set.pop()

> 1

**Operacions de conjunts**

```py
seta:set = {1,2,3}
setb:set = {3,4,5}
seta
setb

{1, 2, 3} {3, 4, 5}

Fem la union, i així de pas eliminem els duplicats.

```py

seta.union(setb) seta | setb

> {1, 2, 3, 4, 5}

Si volem trobar ràpidament els únics elements que estan als 2 conjunts:

    ```py
seta.intersection(setb)
seta & setb
> {3}

Si volem eliminar els duplicats d’una llista, la podem passar a un set.

```py

types_list = [“journal”,“others”,“journal”,“journal”,“journal”,“others”] types_set = set(types_list) types_set


> {'journal', 'others'}

L'ús de sets és menys habitual que el de les llistes, però ja heu vist com ens facilita l'eliminació de duplicats i operacions de conjunts.

### Activitat, set.

**1.-** Dues ofertes de feina que ens interessen demanen dominar aquestes tecnologies. Mostra el conjunt de tecnologies sencer sense duplicats i el conjunt de tecnologies que demanen en ambdós ofertes.

    ```py
oferta1 = ["Python", "FastAPI", "Bokeh", "Angular", "PostgreSQL"]
oferta2 = ["Python", "MariaDB", "PostgreSQL", "FastAPI", "Flask", "Plotly", "React"]

Sortida esperada:

Llista tecnologies :
{'MariaDB', 'Plotly', 'Angular', 'Python', 'PostgreSQL', 'Flask', 'React', 'Bokeh', 'FastAPI'}
Llista tecnologies comunes:
{'Python', 'PostgreSQL', 'FastAPI'}
<details class="solution block w-full mt-1"><summary class="w-full cursor-pointer border bg-gray-300 dark:bg-gray-700 border-gray-400 dark:border-gray-600 hover:bg-gray-200 dark:hover:bg-gray-600 rounded-sm px-3 py-2 text-gray-900 dark:text-gray-100 list-none marker:hidden [&::-webkit-details-marker]:hidden">Show solution</summary><div class="mt-2 prose dark:prose-invert max-w-none"><figure class="code-block not-prose" data-lang="python"><figcaption class="code-lang">python</figcaption><button class="copy-code" type="button" aria-label="Copy code">Copy</button><pre><code class="language-python"><span class="line"><span class="source python"><span class="meta qualified-name python"><span class="meta generic-name python">soferta1</span></span> <span class="keyword operator assignment python">=</span> <span class="meta function-call python"><span class="meta qualified-name python"><span class="variable function python"><span class="support type python">set</span></span></span></span><span class="meta function-call arguments python"><span class="punctuation section arguments begin python">(</span><span class="meta qualified-name python"><span class="meta generic-name python">oferta1</span></span><span class="punctuation section arguments end python">)</span></span>
</span></span><span class="line"><span class="source python"><span class="meta qualified-name python"><span class="meta generic-name python">soferta2</span></span> <span class="keyword operator assignment python">=</span> <span class="meta function-call python"><span class="meta qualified-name python"><span class="variable function python"><span class="support type python">set</span></span></span></span><span class="meta function-call arguments python"><span class="punctuation section arguments begin python">(</span><span class="meta qualified-name python"><span class="meta generic-name python">oferta2</span></span><span class="punctuation section arguments end python">)</span></span>
</span></span><span class="line"><span class="source python"><span class="meta function-call python"><span class="meta qualified-name python"><span class="variable function python"><span class="support function builtin python">print</span></span></span></span><span class="meta function-call arguments python"><span class="punctuation section arguments begin python">(</span><span class="storage type string python">f</span><span class="meta string interpolated python"><span class="string quoted double python"><span class="punctuation definition string begin python">&quot;</span></span></span><span class="meta string interpolated python"><span class="string quoted double python">Llista tecnologies :<span class="constant character escape python">\n</span> </span><span class="meta interpolation python"><span class="punctuation section interpolation begin python">{</span><span class="source python embedded"><span class="meta function-call python"><span class="meta qualified-name python"><span class="meta generic-name python">soferta1</span></span><span class="meta qualified-name python"><span class="punctuation accessor dot python">.</span></span><span class="meta qualified-name python"><span class="variable function python"><span class="meta generic-name python">union</span></span></span></span><span class="meta function-call arguments python"><span class="punctuation section arguments begin python">(</span><span class="meta qualified-name python"><span class="meta generic-name python">soferta2</span></span><span class="punctuation section arguments end python">)</span></span></span></span><span class="meta interpolation python"><span class="punctuation section interpolation end python">}</span></span><span class="string quoted double python"><span class="punctuation definition string end python">&quot;</span></span></span><span class="punctuation section arguments end python">)</span></span>
</span></span><span class="line"><span class="source python"><span class="meta function-call python"><span class="meta qualified-name python"><span class="variable function python"><span class="support function builtin python">print</span></span></span></span><span class="meta function-call arguments python"><span class="punctuation section arguments begin python">(</span><span class="storage type string python">f</span><span class="meta string interpolated python"><span class="string quoted double python"><span class="punctuation definition string begin python">&quot;</span></span></span><span class="meta string interpolated python"><span class="string quoted double python">Llista tecnologies comunes:<span class="constant character escape python">\n</span> </span><span class="meta interpolation python"><span class="punctuation section interpolation begin python">{</span><span class="source python embedded"><span class="meta function-call python"><span class="meta qualified-name python"><span class="meta generic-name python">soferta1</span></span><span class="meta qualified-name python"><span class="punctuation accessor dot python">.</span></span><span class="meta qualified-name python"><span class="variable function python"><span class="meta generic-name python">intersection</span></span></span></span><span class="meta function-call arguments python"><span class="punctuation section arguments begin python">(</span><span class="meta qualified-name python"><span class="meta generic-name python">soferta2</span></span><span class="punctuation section arguments end python">)</span></span></span></span><span class="meta interpolation python"><span class="punctuation section interpolation end python">}</span></span><span class="string quoted double python"><span class="punctuation definition string end python">&quot;</span></span></span><span class="punctuation section arguments end python">)</span></span></span></span></code></pre></figure></div></details>