Samlingar i Python: Allt du behöver veta om Python-samlingar



Den här bloggen kommer att täcka de inbyggda datatyperna för samling i python tillsammans med samlingsmodulen med alla specialiserade datastrukturer för samlingen.

Python-programmeringsspråk har fyra datatyper för insamling- lista , tuple, sätter och . Men levereras också med en inbyggd modul som kallas samlingar som har specialiserade datastrukturer som i princip täcker bristerna i de fyra datatyperna. I den här bloggen kommer vi att gå igenom var och en av dessa specialiserade datastrukturer i detalj. Följande är ämnena höljd i den här bloggen:

Vad finns samlingar i Python?

Samlingar i python är i grunden containerdatatyper, nämligen listor, uppsättningar, tuples, ordbok. De har olika egenskaper baserat på deklarationen och användningen.





  • En lista deklareras inom hakparenteser, den kan ändras, lagrar dubbla värden och element kan nås med hjälp av index.

  • En tuple är ordnad och oföränderlig till sin natur, även om dubbletter kan finnas där inne i en tuple.



  • En uppsättning är inte ordnad och deklareras inom hakparenteser. Det är inte indexerat och har inte dubbla poster också.

  • En ordlista har nyckelvärdepar och är muterbar till sin natur. Vi använder hakparenteser för att förklara en ordbok.

Det här är pythons inbyggda behållardatatyper för allmänt ändamål. Men som vi alla vet har python alltid lite extra att erbjuda. Den levereras med en python-modul med namnet samlingar som har specialiserade datastrukturer.



Specialiserade datastrukturer för insamling

Samlingar modul i python implementerar specialiserade datastrukturer som ger alternativ till pythons inbyggda containerdatatyper. Nedan följer de specialiserade datastrukturerna i samlingsmodulen.

kasta dubbelt till int java
  1. namedtuple ()
  2. och
  3. Chainmap
  4. Disken
  5. OrderedDict
  6. defaultdict
  7. UserDict
  8. Användarlista
  9. UserString

namedtuple ()

Det returnerar en tupel med en namngiven post, vilket innebär att det kommer att tilldelas ett namn till varje värde i tupeln. Det löser problemet med att komma åt elementen med hjälp av indexvärdena. Med namedtuple () blir det lättare att komma åt dessa värden, eftersom du inte behöver komma ihåg indexvärdena för att få specifika element.

Hur det fungerar?

Först och främst måste du importera samlingsmodulen, den kräver ingen installation.

från samlingsimport med namnet Tuple

Titta på följande kod för att förstå hur du kan använda namedtuple.

a = namedtuple ('kurser', 'namn, tech') s = a ('datavetenskap', 'python') utskrift (ar) # utgången kommer att vara kurser (namn = 'python', tech = 'python')

Hur skapar jag en namngiven titel med hjälp av en lista?

s._make (['data science', 'python']) #utmatningen kommer att vara densamma som tidigare.

och

deque uttalas som 'deck' är en optimerad lista för att enkelt kunna infoga och radera.

Hur det fungerar?

#creating a deque from collection import deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) # output kommer att vara deque ([' d ',' u ',' r ',' e ',' k '])

Låt oss nu ta en titt på hur vi ska infoga och ta bort föremål från deque.

a1.append ('a') print (a1) # utgången kommer att vara deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # utgången kommer att vara deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Som det borde vara uppenbart är att infoga en komponent förbättrad med hjälp av deque, du kan också ta bort komponenter också.

a1.pop () print (a1) #utmatningen kommer att vara deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) #utgången kommer att vara deque (['d', 'u', 'r', 'e', ​​'k'])

I likhet med de inbyggda datatyperna finns det flera andra operationer som vi kan utföra på en deque. Som att räkna element eller rensa dekaler etc.

ChainMap

Det är en ordboksliknande klass som kan skapa en enskild vy av flera mappningar. Den returnerar i princip en lista med flera andra ordböcker. Antag att du har två ordböcker med flera viktiga värdepar, i det här fallet kommer ChainMap att göra en enda lista med båda ordböckerna i den.

Hur det fungerar?

från samlingar importerar ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the utdata kommer att vara ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]

För att komma åt eller infoga element använder vi tangenterna som index. Men för att lägga till en ny ordlista i ChainMap använder vi följande tillvägagångssätt.

a1 = {5: 'AI', 6: 'neurala nätverk'} c1 = c.new_child (a1) print (c1) # utgången kommer att vara ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'datavetenskap', 4: 'Maskininlärning'}, {5: 'AI', 6: 'neurala nätverk'}]

Disken

Det är en ordlista-underklass som används för att räkna hash-objekt.

Hur det fungerar?

från samlingar importerar Räknare a = [1,1,1,1,2,3,3,4,3,3,4] c = Räknare (a) skriv ut (c) #utmatningen kommer att vara Räknare = ({1: 4, 2: 1, 3: 4, 4: 2})

Förutom de operationer som du kan utföra på en ordlista har räknaren ytterligare tre operationer som vi kan utföra.

  1. elementfunktion - Den returnerar en lista som innehåller alla element i räknaren.
  2. Most_common () - Den returnerar en sorterad lista med antalet för varje element i räknaren.
  3. Subtrahera () - Det tar ett iterabelt objekt som ett argument och drar av räkningen av elementen i räknaren.

OrderedDict

Det är en ordlista-underklass som kommer ihåg den ordning i vilken posterna lades till. I grund och botten, även om du ändrar tangentens värde kommer positionen inte att ändras på grund av den ordning som den infördes i ordboken.

Hur det fungerar?

från samlingsimport OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' från [7] = 'a' skriv ut (från) # utgången kommer att beställas Dikt [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Det spelar ingen roll vilket värde som infogas i ordboken, OrderedDict kommer ihåg den ordning det infördes i och får utdata därefter. Även om vi ändrar nyckelvärdet. Låt oss säga, om vi ändrar nyckelvärdet 4 till 8, ändras inte ordningen i utdata.

defaultdict

Det är en ordlista-underklass som kallar en fabriksfunktion för att leverera saknade värden. I allmänhet kastar det inga fel när ett saknat nyckelvärde anropas i en ordlista.

Hur det fungerar?

från samlingar importerar defaultdict d = defaultdict (int) # vi måste också ange en typ. d [1] = 'edureka' d [2] = 'python' utskrift (d [3]) # det ger utdata som 0 istället för nyckelfel.

UserDict

Denna klass fungerar som ett omslag kring ordboksobjekt. Behovet av denna klass kom från nödvändigheten att underklassera direkt från dikt. Det blir lättare att arbeta med den här klassen eftersom den underliggande ordboken blir ett attribut.

klasssamlingar.UserDict ([initialdata])

Denna klass simulerar en ordbok. Innehållet i instansen förvaras i en vanlig ordbok som kan nås med attributet 'data' för klassen UserDict. Hänvisningen till initiala uppgifter sparas inte för att den ska användas för andra ändamål.

Användarlista

Denna klass fungerar som ett omslag runt listobjekten. Det är en användbar basklass för andra listor som klasser som kan ärva från dem och åsidosätta befintliga metoder eller till och med lägga till färre nya också.

Behovet av denna klass kom från behovet av att underklassera direkt från listan. Det blir lättare att arbeta med den här klassen eftersom den underliggande listan blir ett attribut.

klasssamlingar.UserList ([list])

Det är klassen som simulerar en lista. Innehållet i instansen sparas i en sedvanlig lista. Underklasserna i listan är beroende av att erbjuda en konstruktör som kan anropas med antingen inget eller ett påstående.

I den här bloggen har vi lärt oss om de specialiserade datastrukturer som kommer med samlingsmodulen i python. Optimering leder till bättre prestanda och förbättrade resultat. Samma sak gäller även vår egen karriär och färdigheter. Om du vill starta ditt lärande och optimera hur du uppfattar programmering kan du registrera dig i edurekas och släpp loss de oändliga möjligheterna med python.

java system.exit (0)

Har du frågor? nämna dem i kommentarer, så återkommer vi till dig så snart som möjligt.