Set
Esta página todavía no se ha traducido — se muestra en su idioma original:Català
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.
```pynum_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.
```pynum_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.
```pyseta.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.
```pytypes_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">"</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">"</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">"</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">"</span></span></span><span class="punctuation section arguments end python">)</span></span></span></span></code></pre></figure></div></details>