logo

Conjunts Python

Python Set és una col·lecció no ordenada de tipus de dades que és iterable, mutable i no té elements duplicats. L'ordre dels elements d'un conjunt no està definit encara que pot constar de diversos elements. El principal avantatge d'utilitzar un conjunt, a diferència d'una llista, és que té un mètode molt optimitzat per comprovar si un element específic està contingut en el conjunt. Aquí, veurem què és un conjunt a Python i també veurem diferents exemples de conjunt Python.

Creació d'un conjunt en Python

Els conjunts de Python es poden crear utilitzant el sistema integrat conjunt() funcionar amb un objecte iterable o una seqüència col·locant la seqüència dins de claus, separades per una 'coma'.



Nota: Un conjunt de Python no pot tenir elements mutables com una llista o un diccionari, ja que és immutable.

Python 3
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Creating a Set with the use of a String set1 = set('GeeksForGeeks') print('
Set with the use of String: ') print(set1) String = 'GeeksForGeeks' set1 = set(String) print('
Set with the use of an Object: ') print(set1) # Creating a Set with the use of a List set1 = set(['Geeks', 'For', 'Geeks']) print('
Set with the use of List: ') print(set1) # Creating a Set with the use of a tuple t = ('Geeks', 'for', 'Geeks') print('
Set with the use of Tuple: ') print(set(t)) # Creating a Set with the use of a dictionary d = {'Geeks': 1, 'for': 2, 'Geeks': 3} print('
Set with the use of Dictionary: ') print(set(d))>

Sortida

alineació d'imatges en css
Initial blank Set:  set()  Set with the use of String:  {'e', 'G', 's', 'F', 'o', 'r', 'k'}  Set with the use of an Object:  {'e', 'G', 's', 'F', 'o', 'r', 'k'}  Set with the use of List:  {'For', 'Geeks'}  Set with the use of Tuple:  {'for', 'Geeks'}  Set with the use of Dictionary:  {'for', 'Geeks'}>

Complexitat temporal: O(n), on n és la longitud de la cadena d'entrada, llista, tupla o diccionari.
Espai auxiliar: O(n), on n és la longitud de la cadena d'entrada, llista, tupla o diccionari.



Un conjunt de Python només conté elements únics, però en el moment de la creació del conjunt, també es poden passar diversos valors duplicats. L'ordre dels elements en un conjunt de Python no està definit i no es pot canviar. El tipus d'elements d'un conjunt no ha de ser el mateix, també es poden passar diversos valors de tipus de dades barrejats al conjunt.

classe abstracta
Python 3
# Creating a Set with a List of Numbers # (Having duplicate values) set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5]) print('
Set with the use of Numbers: ') print(set1) # Creating a Set with a mixed type of values # (Having numbers and strings) set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks']) print('
Set with the use of Mixed Values') print(set1)>

Sortida
Set with the use of Numbers: {1, 2, 3, 4, 5, 6} Set with the use of Mixed Values {1, 2, 4, 6, 'Geeks', 'For'}>

Creació d'un conjunt de Python amb un altre mètode

En aquest exemple, es crea un conjunt utilitzant la notació de claus {}, que conté els números 1, 2 i 3. L'estructura de dades de conjunt en Python o el conjunt no ordenat en Python són col·leccions no ordenades d'elements únics, el que els fa adequats per a tasques que requereixen unicitat i establir operacions en Python.

Python 3
# Another Method to create sets in Python3 # Set containing numbers my_set = {1, 2, 3} print(my_set)>

Sortida
{1, 2, 3}>

Afegir elements a un conjunt en Python

A continuació es mostren alguns dels enfocaments mitjançant els quals podem afegir elements a un conjunt en Python:



  • Utilitzant el mètode add().
  • Utilitzant el mètode update().

Utilitzant el mètode add().

Es poden afegir elements alEstableix en Pythonmitjançant l'ús del integrat afegir() funció. Només es pot afegir un element a la vegada al conjunt mitjançant el mètode add(), els bucles s'utilitzen per afegir diversos elements alhora amb l'ús del mètode add().

Nota: Les llistes no es poden afegir a un conjunt com a elements perquè les llistes no són hashable, mentre que les tuples es poden afegir perquè les tuples són immutables i, per tant, hashable.

Python 3
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Adding element and tuple to the Set set1.add(8) set1.add(9) set1.add((6, 7)) print('
Set after Addition of Three elements: ') print(set1) # Adding elements to the Set # using Iterator for i in range(1, 6): set1.add(i) print('
Set after Addition of elements from 1-5: ') print(set1)>

Sortida
Initial blank Set: set() Set after Addition of Three elements: {8, 9, (6, 7)} Set after Addition of elements from 1-5: {1, 2, 3, (6, 7), 4, 5, 8, 9}>

Utilitzant el mètode update().

Per afegir dos o més elements, s'utilitza el mètode Update(). El mètode update() accepta llistes, cadenes, tuples, així com altres conjunts hash de Python com a arguments. En tots aquests casos s'evita la duplicació d'elements.

Python 3
# Addition of elements to the Set # using Update function set1 = set([4, 5, (6, 7)]) set1.update([10, 11]) print('
Set after Addition of elements using Update: ') print(set1)>

Sortida
Set after Addition of elements using Update: {4, 5, (6, 7), 10, 11}>

Accés a un conjunt en Python

No es pot accedir als elements de conjunt fent referència a un índex, ja que els conjunts no estan ordenats, els elements no tenen índex. Però podeu recórrer els elements del conjunt hash de Python mitjançant un bucle for, o preguntar si hi ha un valor especificat en un conjunt, utilitzant la paraula clau in.

Python 3
# Creating a set set1 = set(['Geeks', 'For', 'Geeks.']) print('
Initial set') print(set1) # Accessing element using # for loop print('
Elements of set: ') for i in set1: print(i, end=' ') # Checking the element # using in keyword print('
') print('Geeks' in set1)>

Sortida

Initial set {'Geeks.', 'For', 'Geeks'}  Elements of set:  Geeks. For Geeks   True>

Eliminació d'elements del conjunt en Python

A continuació es mostren algunes de les maneres en què podem eliminar elements del conjunt a Python:

classificació de bombolles java
  • Utilitzant el mètode remove() o el mètode discard().
  • Utilitzant el mètode pop().
  • Utilitzant el mètode clear().

Utilitzant el mètode remove() o el mètode discard().

Els elements es poden eliminar delEstableix en Pythonutilitzant la funció remove() integrada, però sorgeix un KeyError si l'element no existeix al hashset Python. Per eliminar elements d'un conjunt sense KeyError, utilitzeu discard(), si l'element no existeix al conjunt, romandrà sense canvis.

Python 3
# Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing elements from Set using Remove() method set1.remove(5) set1.remove(6) print('
Set after Removal of two elements: ') print(set1) # Removing elements from Set using Discard() method set1.discard(8) set1.discard(9) print('
Set after Discarding two elements: ') print(set1) # Removing elements from Set using iterator method for i in range(1, 5): set1.remove(i) print('
Set after Removing a range of elements: ') print(set1)>

Sortida
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after Removal of two elements: {1, 2, 3, 4, 7, 8, 9, 10, 11, 12} Set after Discarding two elements: {1, 2, 3, 4, 7, 10, 11, 12} Set after Removing a range of elements: {7, 10, 11, 12}>

Utilitzant el mètode pop().

La funció Pop() també es pot utilitzar per eliminar i retornar un element del conjunt, però només elimina l'últim element del conjunt.

travessa en ordre de l'arbre binari

Nota: Si el conjunt no està ordenat, no hi ha cap manera de determinar quin element apareix utilitzant la funció pop().

Python 3
# Python program to demonstrate # Deletion of elements in a Set # Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing element from the # Set using the pop() method set1.pop() print('
Set after popping an element: ') print(set1)>

Sortida
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after popping an element: {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}>

Utilitzant el mètode clear().

Per eliminar tots els elements del conjunt, s'utilitza la funció clear().

Python 3
#Creating a set set1 = set([1,2,3,4,5]) print('
 Initial set: ') print(set1) # Removing all the elements from  # Set using clear() method set1.clear() print('
Set after clearing all the elements: ') print(set1)>

Sortida
 Initial set: {1, 2, 3, 4, 5} Set after clearing all the elements: set()>

CongelatEstableix en Python

Conjunts congelats a Python són objectes immutables que només admeten mètodes i operadors que produeixen un resultat sense afectar el conjunt o conjunts congelats als quals s'apliquen. Tot i que els elements d'un conjunt es poden modificar en qualsevol moment, els elements del conjunt congelat segueixen sent els mateixos després de la creació.

Si no es passa cap paràmetre, retorna un conjunt congelat buit.

Python 3
# Python program to demonstrate # working of a FrozenSet # Creating a Set String = ('G', 'e', 'e', 'k', 's', 'F', 'o', 'r') Fset1 = frozenset(String) print('The FrozenSet is: ') print(Fset1) # To print Empty Frozen Set # No parameter is passed print('
Empty FrozenSet: ') print(frozenset())>

Sortida
The FrozenSet is: frozenset({'F', 's', 'o', 'G', 'r', 'e', 'k'}) Empty FrozenSet: frozenset()>

Tipografia d'objectes en conjunts

En aquest exemple, llistes , cordes i diccionaris es converteixen en conjunts mitjançant el conjunt() constructor, eliminant els duplicats a les llistes i extreint elements únics en cadenes i claus de diccionari.

Python 3
# Typecasting list into set my_list = [1, 2, 3, 3, 4, 5, 5, 6, 2] my_set = set(my_list) print('my_list as a set: ', my_set) # Typecasting string into set my_str = 'techcodeview.com' my_set1 = set(my_str) print('my_str as a set: ', my_set1) # Typecasting dictionary into set my_dict = {1: 'One', 2: 'Two', 3: 'Three'} my_set2 = set(my_dict) print('my_dict as a set: ', my_set2)>

Sortida
my_list as a set: {1, 2, 3, 4, 5, 6} my_str as a set: {'G', 'f', 'r', 'e', 'k', 'o', 's'} my_dict as a set: {1, 2, 3}>

Exemple: Implementació de totes les funcions

En aquest exemple, una sèrie de funcions mostren les operacions habitualsconjunts en Python. Aquests inclouen crear un conjunt, afegir i eliminar elements, esborrar el conjunt, realitzar operacions d'unió de conjunts, intersecció, diferència, diferència simètrica, subconjunt i superconjunt.

Python 3
def create_set(): my_set = {1, 2, 3, 4, 5} print(my_set) def add_element(): my_set = {1, 2, 3, 4, 5} my_set.add(6) print(my_set) def remove_element(): my_set = {1, 2, 3, 4, 5} my_set.remove(3) print(my_set) def clear_set(): my_set = {1, 2, 3, 4, 5} my_set.clear() print(my_set) def set_union(): set1 = {1, 2, 3} set2 = {4, 5, 6} my_set = set1.union(set2) print(my_set) def set_intersection(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.intersection(set2) print(my_set) def set_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.difference(set2) print(my_set) def set_symmetric_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.symmetric_difference(set2) print(my_set) def set_subset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} subset = set2.issubset(set1) print(subset) def set_superset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} superset = set1.issuperset(set2) print(superset) if __name__ == '__main__': create_set() add_element() remove_element() clear_set() set_union() set_intersection() set_difference() set_symmetric_difference() set_subset() set_superset()>

Sortida
{1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6} {1, 2, 4, 5} set() {1, 2, 3, 4, 5, 6} {4, 5} {1, 2, 3} {1, 2, 3, 6, 7, 8} True True>

Avantatges de Set en Python

  • Elements únics : els conjunts només poden contenir elements únics, de manera que poden ser útils per eliminar duplicats d'una col·lecció de dades.
  • Prova ràpida de membres : els conjunts estan optimitzats per a proves ràpides de pertinença, de manera que poden ser útils per determinar si un valor és o no en una col·lecció.
  • Operacions de conjunt matemàtic: Els conjunts admeten operacions de conjunts matemàtics com la unió, la intersecció i la diferència, que poden ser útils per treballar amb conjunts de dades.
  • Mutable : els conjunts són mutables, la qual cosa significa que podeu afegir o eliminar elements d'un conjunt després d'haver-lo creat.

Inconvenients deEstableix en Python

  • No ordenat : els conjunts no estan ordenats, el que significa que no podeu confiar en l'ordre de les dades del conjunt. Això pot dificultar l'accés o el tractament de les dades en un ordre específic.
  • Funcionalitat limitada: Els conjunts tenen una funcionalitat limitada en comparació amb les llistes, ja que no admeten mètodes com append() o pop(). Això pot fer que sigui més difícil modificar o manipular les dades emmagatzemades en un conjunt.
  • Ús de memòria: Els conjunts poden consumir més memòria que les llistes, especialment per a conjunts de dades petits. Això es deu al fet que cada element d'un conjunt requereix memòria addicional per emmagatzemar un valor hash.
  • Menys utilitzat: Els conjunts s'utilitzen menys que les llistes i els diccionaris a Python, la qual cosa significa que hi pot haver menys recursos o biblioteques disponibles per treballar-hi. Això pot fer que sigui més difícil trobar solucions als problemes o obtenir ajuda amb la depuració.

En general, els conjunts poden ser una estructura de dades útil a Python, especialment per eliminar duplicats o per a proves ràpides de pertinença. Tanmateix, la seva manca d'ordenació i la seva funcionalitat limitada també poden fer-los menys versàtils que les llistes o els diccionaris, per la qual cosa és important tenir en compte els avantatges i els desavantatges d'utilitzar conjunts a l'hora de decidir quina estructura de dades utilitzar al vostre programa Python.

Establir mètodes en Python

FuncióDescripció
afegir() Afegeix un element a un conjunt
eliminar () Elimina un element d'un conjunt. Si l'element no està present al conjunt, genereu un KeyError
clar () Elimina tots els elements d'un conjunt
copiar () Retorna una còpia superficial d'un conjunt
pop() Elimina i retorna un element conjunt arbitrari. Aixequeu KeyError si el conjunt està buit
actualitzar () Actualitza un conjunt amb la unió de si mateix i dels altres
Unió() Retorna la unió de conjunts en un conjunt nou
diferència () Retorna la diferència de dos o més conjunts com a conjunt nou
actualització_diferència() Elimina tots els elements d'un altre conjunt d'aquest conjunt
descartar () Elimina un element del conjunt si és un membre. (No feu res si l'element no està al conjunt)
intersecció () Retorna la intersecció de dos conjunts com a conjunt nou
intersection_update()Actualitza el conjunt amb la intersecció de si mateix i un altre
isdisjoint() Retorna True si dos conjunts tenen una intersecció nul·la
issubset() Retorna True si un altre conjunt conté aquest conjunt
superconjunt () Retorna True si aquest conjunt conté un altre conjunt
diferència_simètrica() Retorna la diferència simètrica de dos conjunts com a conjunt nou
actualització_diferència_simètrica() Actualitza un conjunt amb la diferència simètrica de si mateix i un altre

Articles recents sobre conjunts de Python

Establir programes

  • Programa per acceptar les cadenes que conté totes les vocals
  • Programa Python per trobar elements comuns en tres llistes mitjançant conjunts
  • Trobeu els valors que falten i els addicionals en dues llistes
  • Parells de cordes completes en dos jocs
  • Comproveu si una cadena donada és heterograma o no
  • Màxim i mínim en un conjunt
  • Elimina elements del conjunt
  • Python Estableix la diferència per trobar l'element perdut d'una matriu duplicada
  • Nombre mínim de subconjunts amb elements diferents mitjançant Counter
  • Comproveu si dues llistes tenen com a mínim un element comú
  • Programa per comptar el nombre de vocals utilitzant conjunts en una cadena donada
  • Diferència entre dues llistes
  • Python establert per comprovar si la cadena és panagram
  • Operacions de conjunt de Python (unió, intersecció, diferència i diferència simètrica)
  • Cadena concatenada amb caràcters poc comuns a Python
  • Diccionari, conjunt i comptador de Python per comprovar si les freqüències poden tornar-se iguals
  • Utilitzant Set() a Python Pangram Checking
  • Estableix update() a Python per fer la unió de n matrius

links útils

  • Sortida dels programes Python - Conjunts
  • Articles recents sobre conjunts de Python
  • Preguntes d'opció múltiple - Python
  • Tots els articles de la categoria Python