El llenguatge de programació Python té quatre tipus de dades de recopilació: llista , tupla, conjunts i . Però també inclou un mòdul integrat conegut com a col·leccions que té estructures de dades especialitzades que bàsicament cobreixen les deficiències dels quatre tipus de dades. En aquest bloc, examinarem detalladament cadascuna d’aquestes estructures de dades especialitzades. A continuació es detallen els temes que es recullen en aquest bloc:
Què són les col·leccions a Python?
Les col·leccions en python són bàsicament tipus de dades de contenidors, és a dir, llistes, conjunts, tuples, diccionaris. Tenen diferents característiques segons la declaració i l’ús.
utilitzant r per a l’aprenentatge automàtic
Es declara una llista entre claudàtors, es pot modificar, emmagatzema valors duplicats i es pot accedir als elements mitjançant índexs.
Una tupla està ordenada i té una naturalesa immutable, tot i que hi ha entrades duplicades dins d’una tupla.
Un conjunt no està ordenat i es declara entre claudàtors. No està indexat i tampoc no té entrades duplicades.
Un diccionari té parells de valors clau i és de naturalesa mutable. Utilitzem claudàtors per declarar un diccionari.
Aquests són els tipus de dades de contenidors integrats de propòsit general de Python. Però, com tots sabem, Python sempre ofereix una mica més. Ve amb un mòdul Python anomenat col·leccions que té estructures de dades especialitzades.
Estructures de dades de col·lecció especialitzada
Col·leccions mòdul en python implementa estructures de dades especialitzades que ofereixen alternatives als tipus de dades de contenidors integrats de Python. A continuació es mostren les estructures de dades especialitzades en el mòdul de col·leccions.
- namedtuple ()
- i
- Mapa de cadenes
- Comptador
- OrderedDict
- defaultdict
- UserDict
- Llista d'usuaris
- UserString
namedtuple ()
Retorna una tupla amb una entrada amb nom, el que significa que hi haurà un nom assignat a cada valor de la tupla. Supera el problema d’accedir als elements mitjançant els valors de l’índex. Amb namedtuple () es fa més fàcil accedir a aquests valors, ja que no cal recordar els valors de l’índex per obtenir elements específics.
Com funciona?
Primer de tot, heu d’importar el mòdul de col·leccions, no requereix instal·lació.
de les importacions de col·leccions namedtuple
Mireu el codi següent per entendre com podeu utilitzar namedtuple.
a = namedtuple ('courses', 'name, tech') s = a ('data science', 'python') print (s) # la sortida serà cursos (name = 'python', tech = 'python')
Com es pot crear un namedtuple mitjançant una llista?
s._make (['ciència de dades', 'python']) # la sortida serà la mateixa que abans.
i
deque que es pronuncia com a 'baralla' és una llista optimitzada per realitzar la inserció i la supressió fàcilment.
Com funciona?
#creating a deque from collections import deque a = ['d', 'u', 'r', 'e', 'k'] a1 = deque (a) print (a1) # la sortida serà deque ([' d ',' u ',' r ',' e ',' k '])
Ara fem una ullada a com inserirem i eliminarem elements de deque.
a1.append ('a') print (a1) # la sortida serà deque (['d', 'u', 'r', 'e', 'k', 'a']) a1.appendleft (' e ') print (a1) # la sortida serà deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])
Com hauria de ser obvi, la inserció d’un component es millora mitjançant deque, també podeu eliminar components.
a1.pop () print (a1) # la sortida serà deque (['e', 'd', 'u', 'r', 'e', 'k']) a1.popleft () print (a1 ) # la sortida serà deque (['d', 'u', 'r', 'e', 'k'])
De manera similar als tipus de dades integrats, hi ha diverses operacions que podem realitzar en un deque. Com comptar elements o netejar el deque, etc.
ChainMap
És un diccionari de classe que és capaç de fer una sola vista de mapatges múltiples. Bàsicament retorna una llista de diversos diccionaris més. Suposem que teniu dos diccionaris amb diversos parells de valors clau, en aquest cas ChainMap farà una llista única amb tots dos diccionaris.
Com funciona?
de les col·leccions importeu ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'ciència de dades', 4: 'Aprenentatge automàtic'} c = ChainMap (a, b) print (c) #the la sortida serà ChainMap [{1: 'edureka', 2: 'python'}, {3: 'ciència de dades', 4: 'Aprenentatge automàtic'}]
Per accedir o inserir elements utilitzem les tecles com a índex. Però per afegir un nou diccionari al ChainMap fem servir el següent enfocament.
a1 = {5: 'AI', 6: 'xarxes neuronals'} c1 = c.new_child (a1) print (c1) # la sortida serà ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'ciència de dades', 4: 'Aprenentatge automàtic'}, {5: 'IA', 6: 'xarxes neuronals'}]
Comptador
És una subclasse de diccionari que s’utilitza per comptar objectes que es poden manipular.
què és la sincronització a Java
Com funciona?
d'importacions de col·leccions Comptador a = [1,1,1,1,2,3,3,4,3,3,4] c = Comptador (a) imprimeix (c) # la sortida serà Comptador = ({1: 4, 2: 1, 3: 4, 4: 2})
A més de les operacions que podeu fer en un diccionari, el comptador té 3 operacions més que podem realitzar.
- funció d’element: retorna una llista que conté tots els elements del comptador.
- Most_common (): retorna una llista ordenada amb el recompte de cada element al comptador.
- Subtract (): pren un objecte iterable com a argument i dedueix el recompte dels elements del comptador.
OrderedDict
És una subclasse de diccionari que recorda l'ordre en què es van afegir les entrades. Bàsicament, fins i tot si canvieu el valor de la clau, la posició no es modificarà a causa de l'ordre en què s'ha inserit al diccionari.
Com funciona?
de les importacions de col·leccions OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' de [7] = 'a' imprimir (de) # la sortida serà OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]
No importa quin valor s’insereixi al diccionari, el OrderedDict recorda l’ordre en què s’ha inserit i obté la sortida en conseqüència. Fins i tot si canviem el valor de la clau. Diguem que, si canviem el valor clau de 4 a 8, l’ordre no canviarà a la sortida.
defaultdict
És una subclasse de diccionari que crida a una funció de fàbrica per proporcionar els valors que falten. En general, no genera cap error quan es crida un valor de clau que falta en un diccionari.
Com funciona?
de les importacions de col·leccions defaultdict d = defaultdict (int) # també hem d’especificar un tipus. d [1] = 'edureka' d [2] = imprimir 'python' (d [3]) #it donarà la sortida com a 0 en lloc de keyerror.
UserDict
Aquesta classe actua com un embolcall al voltant dels objectes del diccionari. La necessitat d'aquesta classe provenia de la necessitat de subclassar directament de dict. Es fa més fàcil treballar amb aquesta classe ja que el diccionari subjacent es converteix en un atribut.
classes collections.UserDict ([initialdata])
Aquesta classe simula un diccionari. El contingut de la instància es guarda en un diccionari habitual al qual es pot accedir amb l’atribut ‘data’ de la classe UserDict. No es conserva la referència de les dades inicials, perquè es puguin utilitzar amb altres finalitats.
Llista d'usuaris
Aquesta classe actua com un embolcall al voltant dels objectes de la llista. És una classe base útil per a altres llistes, com ara classes que poden heretar-les i anul·lar els mètodes existents o fins i tot afegir-ne de nous.
La necessitat d'aquesta classe provenia de la necessitat de subclassar directament de la llista. Es fa més fàcil treballar amb aquesta classe ja que la llista subjacent es converteix en un atribut.
class collections.UserList ([llista])
És la classe que simula una llista. El contingut de la instància es manté en una llista habitual. Es confia en les subclases de la llista per oferir un constructor que es pot cridar sense cap o amb una única contenció.
En aquest bloc, hem conegut les estructures de dades especialitzades que inclou el mòdul de col·leccions en python. L’optimització comporta un millor rendiment i millors resultats. El mateix s'aplica a la nostra pròpia carrera i habilitats. Si voleu iniciar el vostre aprenentatge i optimitzar la manera de percebre la programació, inscriviu-vos a edureka i desencadenar les infinites possibilitats amb python.
Té alguna consulta? mencioneu-los en comentaris i us respondrem el més aviat possible.