Arány- és gyakorisági táblázatok Excelben
Az Excel gyakorisági táblázataiban, valamint az aránytáblázatokban készültek. Nos, nézze meg, mik ezek, és mikor kell használni őket.
Ha Ön Python-fejlesztő, valószínűleg hallott már a deque-ről vagy a „kétvégű sorról”. Ez egy hatékony eszköz, amely növelheti az alkalmazás hatékonyságát és felgyorsíthatja annak teljesítményét.
A deque egy speciális tároló adattípus, amely gyorsabb hozzáfűzési és pop műveleteket kínál a tároló mindkét végéről. Ez értékes eszközzé teszi a sorok és veremek megvalósításához, amelyek a számítástechnikában gyakori listaszerű adattípusok.
Ez egy alacsony szintű és nagymértékben optimalizált adatstruktúra, amely nagyon hasznos különféle alkalmazásokhoz. Python-programozóként a deque az egyik eszköz, amelyet az arzenáljában szeretne tartani.
Folytassa az olvasást, hogy többet megtudjon a Deques-ről és arról, hogyan alkalmazhatja őket a !
Tartalomjegyzék
Mi az a Deque?
Ha még nem ismeri a Python-t vagy általában a számítógép-programozást, akkor felmerülhet a kérdés, mi az a deque. A Deque a „ kétvégű várólista ” rövidítése , és ez egy olyan adatstruktúra, amely lehetővé teszi elemek hozzáadását és eltávolítását a sor mindkét végéről.
Hasonlít egy normál sorhoz, de megnövelt rugalmassággal, hogy a sor elejéről és hátuljáról is felvehet és eltávolíthat elemeket. Ez azért lehetséges, mert a Python deque-je duplán linkelt listaként van megvalósítva.
A Pythonban a deque-eket a gyűjtemények modul segítségével valósítják meg, amely egy deque osztályt biztosít. Ez az osztály számos módszert biztosít az elemek hozzáadásához és eltávolításához a deque-ből.
Funkciókat biztosít más hasznos műveletekhez is, mint például a deque forgatásához vagy teljes törléséhez.
A Python Deque jellemzői
A szokásos listától eltérően, amelynek O(n) időbonyolultsága van az append és pop műveletekhez, a deque egy O(1) idejű összetettséget biztosít. Ez jelentősen gyorsabbá és memóriahatékonyabbá teszi ezeket az olvasási és írási műveleteket.
Íme néhány további Python deque funkció, amelyet tudnia kell:
Ez egy változtatható adatstruktúra.
Többféle adattípust is tárolhat, pl. egész számokat, sorokat, tömböket stb.
Támogatja az indexelést, de nem a szeletelési műveleteket.
Nem támogatja a helyben történő válogatást
Támogatja a gyakori beépített iterálható függvényeket és műveleteket, mint például in , sorted() , len() , reverse() stb.
Az A Deque alkalmazásai
A deque-ek számos okból hasznosak. Használhatók például sorok vagy veremek megvalósítására, amelyek mindkettő gyakori adatstruktúra a számítástechnikában.
Használhatók továbbá az adatok valós idejű hatékony feldolgozására, például streaming alkalmazásokban vagy olyan rendszerekben, amelyek gyors hozzáférést igényelnek az adatokhoz.
Amellett, hogy sorokhoz és veremekhez használhatók, a deque-ek szélesség-első keresési algoritmusok megvalósítására is használhatók. Hasznosak az elemek tolóablakának nagyobb sorrendben való megtartásához is.
Deque létrehozása és inicializálása
A gyűjtemény modul egy beépített funkciójával készíthet deque-t. Nézzük meg alaposan, hogyan hozhatja létre és töltheti fel ezt az adatstruktúrát.
A deque() függvény használata
A Pythonban deque létrehozásához használhatja a beépített deque() függvényt a gyűjtemények modulból. Ez a függvény egy új üres deque objektumot ad vissza, amelyet kétvégű sor megvalósítására használhat.
Íme egy példa egy üres deque objektum létrehozására:
from collections import deque
my_deque = deque()
Létrehozhat deque-t kezdeti elemekkel is, ha egy iterálható elemet (lista, sor stb.) ad át a deque() függvénynek. A deque inicializálása az iterálható elemekkel történik balról jobbra.
Íme egy példa:
from collections import deque
my_list = [1, 2, 3, 4, 5]
my_deque = deque(my_list)
Deque inicializálása elemekkel
Egy üres deque elemet is inicializálhat különböző módszerekkel. Ennek egyik módja, hogy az append() és appendleft() metódusokat használva elemeket adunk a deque-hez a jobb, illetve a bal oldalról.
Íme egy példa:
from collections import deque
#Initialize the empty deque
my_deque = deque()
print(my_deque)
#Add Values to the deque
my_deque.append(1)
my_deque.append(2)
my_deque.appendleft(3)
print(my_deque)
A kód futtatása után a deque tartalmazza a [3, 1, 2] elemeket.
A deque elemekkel történő inicializálásának másik módja az elemek listájának átadása a deque() függvénynek.
Íme egy példa:
from collections import deque
my_deque = deque([1, 2, 3])
A kód futtatása létrehoz egy deque objektumot, amely az [1, 2, 3] elemeket tartalmazza .
Összességében a deque létrehozása és inicializálása Pythonban egyszerű, és a beépített deque() függvény segítségével is elvégezhető . Ezt úgy is megteheti, hogy elemeket ad hozzá egy üres deque-hez az append() és appendleft() metódusokkal.
Hogyan hajtsunk végre közös deque műveleteket
A Pythonban számos műveletet végrehajthat a deque-objektumokon. Nézzünk meg néhányat a népszerűbbek közül.
Elemek hozzáadása a Deque-hez
Az append() és appendleft() metódusokkal adhat hozzá elemeket a deque-hez . Az append() metódus hozzáad egy elemet a deque jobb végéhez, míg az appendleft() metódus hozzáad egy elemet a deque bal végéhez.
Íme egy példa:
import collections
# Create an empty deque
my_deque = collections.deque()
# Add elements to the deque
my_deque.append(1)
my_deque.appendleft(2)
my_deque.append(3)
print(my_deque)
# Output:
deque([2, 1, 3])
Több adatelem hozzáadása a deque-hez
Ha nem szeretnénk egyenként adatelemeket hozzáadni a deque-hez, akkor az extend() vagy extendleft() függvényekkel felgyorsíthatjuk a folyamatot . Ezek a függvények egy iterálhatót vesznek fel, és hozzáfűzik az iterálható tartalmát a deque végéhez, illetve bal végéhez.
Íme egy példa:
from collections import deque
my_list = [1, 2, 3, 4, 5]
my_deque = deque(my_list)
#Creating a tuple and list
cont = (11, 12, 13, 14)
full = [10,20,30]
#Extending the deque from the right
my_deque.extend(cont)
print(my_deque)
#Extending the deque from the left
my_deque.extendleft(full)
print(my_deque)
A fenti kódban az extend() függvény hozzáfűzi a cont sor több értékét a deque végéhez. Ezután az extendleft() függvény a teljes lista több adatelemét hozzáfűzi a deque bal végéhez.
Elemek eltávolítása a Deque-ből
A pop() és popleft() metódusokkal eltávolíthat elemeket a Python-deque-ből . A pop() metódus eltávolítja és visszaadja a deque jobb szélső elemét, míg a popleft() metódus eltávolítja és visszaadja a deque bal szélső elemét.
Íme egy példa:
import collections
#Create a deque with some elements
my_deque = collections.deque([1, 2, 3, 4, 5])
#Remove elements from the deque
my_deque.pop()
my_deque.popleft()
print(my_deque)
# Output: deque([2, 3, 4])
Egy adott értéket a deque-ből is eltávolíthat a remove() függvénnyel. A függvény eltávolítja a deque-ből a megadott érték első előfordulását.
Íme egy példa:
import collections
#Create a deque with some elements
my_deque = collections.deque([1, 2, 1, 4, 5])
#Remove elements from the deque
my_deque.remove(1)
print(my_deque)
# Output: deque([2, 1, 4, 5])
Ha az elem nem található, a Python ValueError értéket ad vissza .
Minden elem eltávolítása a Deque-ből
A Deque összes elemének eltávolításához és üres állapotba való visszaállításához használhatjuk a clear() függvényt. Így működik:
from collections import deque
#Create a deque with some elements
my_deque = deque([1, 2, 1, 4, 5])
#Remove all elements from the deque
my_deque.clear()
print(my_deque)
# Output:
deque([])
Hozzáférés a Deque elemeihez
A Python-deque elemeit a [] indexelő operátor segítségével érheti el . Az indexelési operátorban negatív értéket is használhat a deque elemek jobb oldali eléréséhez.
Az indexelés a bal szélső elemnél 0-tól, a jobb szélső elemnél -1-től kezdődik. Íme egy példa:
import collections
# Create a deque with some elements
my_deque = collections.deque([1, 2, 3, 4, 5])
# Access elements of the deque
print(my_deque[0])
# Output: 1
print(my_deque[-1])
# Output: 5
A Deque elemeinek módosítása
A Python-deque elemeit a „ [] ” indexelő operátor és a „ = ” hozzárendelési operátor segítségével módosíthatja . Íme egy példa:
from collections import deque
# Create a deque with some elements
my_deque = deque([1, 2, 3, 4, 5])
print(my_deque)
# Modify elements of the deque
my_deque[0] = 10
my_deque[-1] = 50
print(my_deque)
A fenti kódban az indexelő operátor a deque első és utolsó elemét 10-re, illetve 50-re módosítja.
Ezek azok az alapvető műveletek, amelyeket egy deque-objektum Pythonban végrehajthat. Ezekkel a műveletekkel hatékonyan implementálhat különféle adatstruktúrákat, például sorokat, veremeket és egyebeket.
Hogyan dolgozzunk egy deque-vel várólistaként
Használhat deque-t a Pythonban egy sor adatstruktúra megvalósításához. A várakozási sor egy absztrakt adattípus, amely FIFO (first in first out) alapon működik.
Ez azt jelenti, hogy a sor egyik végéről új elemeket fűzhet hozzá, a másik végéről pedig kinyomhatja a régi elemeket.
Jó módja annak, hogy ezt megmagyarázzuk, ha egy sor az üzletben van. Általában az elsőként érkező személy áll a sor élén, és először látják el.
Az újonnan érkezőknek a sor végére kell menniük, és ki kell várniuk a sorukat. Tehát az első beérkező lesz az első válaszoló, míg az utolsó beérkező lesz az utolsó válasz.
Az alábbiakban bemutatjuk, hogyan használhat deque-t a várólisták megvalósításához.
Az append() és popleft() metódusok használata
Ha egy deque-t sorként szeretne használni, az append() metódussal hozzáadhat elemeket a deque jobb végéhez. Ezenkívül a popleft() metódussal eltávolíthatja az elemeket a deque bal végéről.
Ez egy nagyon hatékony módja a várakozási sorok Pythonban való megvalósításának. Íme egy példa:
from collections import deque
queue = deque()
queue.append(1)
queue.append(2)
queue.append(3)
print(queue)
# Output: deque([1, 2, 3])
x = queue.popleft()
print(x)
# Output: 1
print(queue)
# Output: deque([2, 3])
Mint látható, az append() metódus a deque jobb végéhez ad hozzá elemeket, a popleft() metódus pedig eltávolítja a deque bal végéből.
Pontosan erre van szükségünk egy sor implementációban.
Annak ellenőrzése, hogy a deque Queue üres-e
Ha ellenőrizni szeretné, hogy egy deque üres-e, használja a not operátort. Íme egy példa:
from collections import deque
queue = deque()
if not queue:
print("Queue is empty")
else:
print("Queue is not empty")
Ez a „ Várólista üres ”, mert a deque üres. Ha elemeket ad hozzá a deque-hez, az többé nem lesz üres.
Összefoglalva, a deque-nek a Pythonban várólistaként való használata nagyon hatékony és könnyen megvalósítható.
Munka a Deque-vel, mint egy verem
Csakúgy, mint a várólisták, a veremek egy másik példája az absztrakt adattípusoknak, amelyeket az adatok rendszerezéséhez használhat. A várólistáktól eltérően a veremek LIFO (last in first out) módon működnek.
Ez azt jelenti, hogy a deque utolsó eleme lesz az első elem. A következőképpen valósíthatja meg ezt a mögöttes adatstruktúra használatával.
Az append() és pop() metódusok használata
Ha a Deque-t veremként használja, akkor az append() metódussal hozzáadhat elemeket a verem tetejére. Ez a módszer hozzáadja az elemet a deque jobb végéhez.
Hasonlóképpen eltávolíthat elemeket a verem tetejéről a pop() metódussal. Ez a módszer eltávolítja és visszaadja a deque jobb szélső elemét.
Tegyük fel például, hogy van egy „ my_stack ” nevű deque-je, és egy elemet szeretne hozzáadni a verem tetejéhez. A következő kódot használhatja:
my_stack.append(5)
Ez hozzáadja az 5-ös elemet a verem tetejéhez.
Ha el szeretné távolítani a legfelső elemet a veremből, használhatja a pop() metódust: `
bal = my_stack.pop()
print(bal)
# Output: 5
Ezzel eltávolítja és visszaadja a deque jobb szélső elemét, amely ebben az esetben az 5.
Üres deque objektum keresése
A „ not ” logikai operátor segítségével ellenőrizheti, hogy egy deque verem üres-e . Ha a deque üres, a „ not my_deque ” True értéket ad vissza . Ellenkező esetben a False értéket adja vissza .
Tegyük fel például, hogy van egy „ my_deque ” nevű deque verem, és ellenőrizni szeretné, hogy üres-e. A következő kódot használhatja:
if not my_deque:
print("The deque is empty")
else:
print("The deque is not empty")
Ha a deque üres, akkor ez a következőt írja ki: „ A deque is üres”. Ha nem üres, a kimenet „ A deque is not empty ” lesz.
Amikor a Deque-vel dolgozik veremként, fontos nyomon követni, hogy a verem üres-e vagy sem. Ha egy üres veremből próbál kidobni egy elemet, IndexError üzenetet fog kapni .
Mi az a korlátozott deque?
A korlátozott visszaküldés egy kétvégű várólista, amely bizonyos korlátozásokkal rendelkezik az adathozzáfűzési és pop-műveletekre a deque mindkét végén. A korlátozott deque két fő típusa van; Korlátozott bemeneti deque és kimenet korlátozott deque
Nézzük őket:
Input Restricted Deque
A bevitelre korlátozott deque lehetővé teszi az adatelemek felbukkanását vagy törlését a deque mindkét végéről. Adatelemeket azonban csak a deque egyik végéről illeszthet be.
Ez nagyon hasznos a memóriakorlátokkal rendelkező alkalmazásokban. Használhatja adatelemek időrendi sorrendben történő hozzáadására, miközben megőrzi az adatok elvetését a deque bármely végéről.
Kimenet Korlátozott Deque
A kimenetre korlátozott visszaküldés lehetővé teszi adatok beszúrását a deque mindkét végéről. Az elemeket azonban csak a deque egyik végéből törölheti, amelyet kezelőfelületnek neveznek.
A kimenetre korlátozott deque nagyon hasznos azokban az esetekben, amikor FIFO adatstruktúrát kell megvalósítani, de továbbra is szeretné, hogy a funkcionalitás mindkét végről adatokat fűzzen hozzá.
Csomagoljuk be
Mostanra már jól ismernie kell a Python deque modulját, és azt, hogy hogyan használható hatékony várólisták és veremek megvalósítására.
A Deques egy sokoldalú adatstruktúra, amely számos előnnyel rendelkezik a hagyományos listákkal szemben. Ezek az előnyök nyilvánvalóak a memóriahatékony hozzáfűzés és pop műveletek során.
Akkor is nagyszerű választás, ha verem vagy kétvégű sor megvalósítására van szükség. A deque használatának néhány fő előnye:
Hatékony O(1) append és pop műveletek a deque mindkét végéről
Gyors O(1) hozzáférés a deque első és utolsó eleméhez
Beépített támogatás a menetbiztos, atomi műveletekhez
Rugalmas módszerek az elemek beillesztésére, eltávolítására és elforgatására
Összességében a deque modul egy hatékony eszköz, amely segíthet hatékonyabb és karbantarthatóbb Python-kód írásában. Akár egy kis forgatókönyvön, akár egy nagyszabású projekten dolgozik, a deque-eket mindenképpen érdemes megfontolni a hagyományos listák vagy egyéb adatstruktúrák alternatívájaként!
Készen áll, hogy többet megtudjon a Pythonról, tekintse meg az alábbi lejátszási listánkat
Az Excel gyakorisági táblázataiban, valamint az aránytáblázatokban készültek. Nos, nézze meg, mik ezek, és mikor kell használni őket.
Ismerje meg, hogyan töltheti le és telepítheti a DAX Studio és a Tabular Editor 3 alkalmazást, és hogyan konfigurálhatja őket a LuckyTemplates és az Excel programban való használatra.
Ez a blog tartalmazza a Shape Map vizualizációt a LuckyTemplates térbeli elemzéséhez. Megmutatom, hogyan használhatja hatékonyan ezt a vizualizációt annak funkcióival és elemeivel.
Ebben az oktatóanyagban egy egyedülálló ötletet mutatok be a pénzügyi jelentésekkel kapcsolatban, amely az eredmények hozzárendelését jelenti a LuckyTemplates-en belüli táblázatsablonok előre meghatározásához.
Hozzon létre DAX-mértékeket a LuckyTemplates alkalmazásban meglévő mértékek vagy képletek használatával. Ezt nevezem mértékelágazási technikának.
Ebben a blogban fedezze fel a LuckyTemplates adatkészletet, a leghatékonyabb függvényhívást, amely M- és DAX-függvények ezreit juttatja a keze ügyébe.
A mai oktatóanyagban megosztok néhány adatmodellezési technikát a DAX-mérések jobb rendszerezéséhez a hatékonyabb munkafolyamat érdekében.
A LuckyTemplates egy nagyszerű eszköz a pénzügyi jelentésekhez. Itt található egy oktatóanyag, amely bemutatja, hogyan hozhat létre személyre szabott táblázatokat a LuckyTemplates pénzügyi irányítópultjához.
Ez az oktatóanyag megvitatja a Power Query nyelvi folyamatot, és azt, hogyan segíthet zökkenőmentes és hatékony adatjelentések létrehozásában.
Az egyik kedvenc technikámról fogok beszélni a LuckyTemplates egyéni ikonok körül, amely dinamikusan használja az egyéni ikonokat a LuckyTemplates vizualizációkban.