Heim  >  Artikel  >  Backend-Entwicklung  >  Worauf bezieht sich der Stapel in Python?

Worauf bezieht sich der Stapel in Python?

藏色散人
藏色散人Original
2019-07-02 09:27:274535Durchsuche

Worauf bezieht sich der Stapel in Python?

Ein Stapel ist eine geordnete Sammlung von Elementen, bei der das Hinzufügen und Entfernen neuer Elemente immer am selben Ende erfolgt. Dieses Ende wird oft als „oben“ bezeichnet. Das der Oberseite entsprechende Ende wird „unten“ genannt.

Worauf bezieht sich der Stapel in Python?

Wie im Bild beschrieben, stapeln Sie s=(a1,a2,…an-1,an). Das letzte, das auf den Stapel geschoben wird, ist ein, und das erste, das vom Stapel genommen wird, ist ebenfalls ein. Der Stack entspricht also dem LIFO-Prinzip.

LIFO

LIFO, also das Last-in-First-out-Sortierprinzip. Die Sortierung basiert auf der Zeitspanne innerhalb der Sammlung. Neuere Artikel befinden sich oben und ältere Artikel unten. Der unterste Teil des Stapels ist wichtig, da Gegenstände am unteren Ende des Stapels am längsten gelagert werden. Neu hinzugefügte Elemente werden zuerst entfernt.

Der Stapel ist wichtig, weil er die Reihenfolge der Elemente umkehrt. Einfügen und Löschen erfolgen in umgekehrter Reihenfolge.

Das typischste Beispiel ist, dass jeder Webbrowser über eine Zurück-Schaltfläche verfügt. Wenn Sie im Internet surfen, werden die Webseiten in einem Stapel abgelegt (eigentlich die URL der Webseite). Die Seite, die Sie gerade anzeigen, befindet sich oben und die Seite, die Sie zuerst angezeigt haben, unten. Wenn Sie auf die Schaltfläche „Zurück“ klicken, blättern Sie in umgekehrter Reihenfolge durch die vorherigen Seiten.

Python-Implementierungsstapel

# 创建一个空的新栈。 它不需要参数,并返回一个空栈。
class Stack:
    def __init__(self):
        self.items = []
        
    # 测试栈是否为空。不需要参数,并返回布尔值。
    def isEmpty(self):
        return self.items == []
    
    # 将一个新项添加到栈的顶部。它需要 item 做参数并不返回任何内容。
    def push(self, item):
        self.items.append(item)
        
    # 从栈中删除顶部项。它不需要参数并返回 item 。栈被修改。
    def pop(self):
        return self.items.pop()
    
    # 从栈返回顶部项,但不会删除它。不需要参数。 不修改栈。
    def peek(self):
        return self.items[len(self.items)-1]
    
    # 返回栈中的 item 数量。不需要参数,并返回一个整数。
    def size(self):
        return len(self.items)

Dezimalzahl in beliebige Basiszahl umwandeln

Kennen Sie den Stapel. Führen Sie einfach eine aus kleines Projekt zum Üben der Grundbedienung. Konvertieren Sie eine Dezimalzahl in eine beliebige Basiszahl. Tatsächlich ist die höchste Zahl hexadezimal (gibt es höhere Basen?).

def baseConverter(n, base):
    
    # n是输入的十进制数字,base为要转化的进制数
    digits = '0123456789ABCDEF'
    
    #创建一个新栈
    s= Stack()
    
    # 将每次计算所得的余数添加进栈
    while n> 0:
        rem = n % base
        s.push(rem)
        n = n // base
    
    # 将余数倒序排列至新字符串    
    newString = ''
    while not remstack.isEmpty():
        newString = newString + digits[remstack.pop()]
        
    return newString

Verwandte Empfehlungen: „Python-Tutorial

Das obige ist der detaillierte Inhalt vonWorauf bezieht sich der Stapel in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn