Python-Liste, Tapple, Wörterbuch

Dieses Mal werde ich Listen, Taples und Wörterbücher unter Python-Datentypen erklären. Dies ist die Erklärung von Python nach langer Zeit. Vergleichen Sie mit Java-Deklarationsmethode und -methode.

aufführen

Ein Datentyp, der die Reihenfolge mehrerer Elemente beibehält und eine Menge jedes Elements darstellt. Deklarieren Sie mit []. Wenn Sie die Elemente zum Zeitpunkt der Deklaration festlegen möchten, deklarieren Sie die Elemente in [] durch Kommas getrennt.

Greifen Sie auf jedes Element zu

Auf jedes Element kann über den Index zugegriffen werden, und der Index der Liste a mit der Länge n ist 0..n-1. Das m-te (1 <= m <= n) Element kann mit a [m -1] erhalten werden.

Python


    a = ["1-1", "1-2", "1-3", "1-4", "1-5"]
    print(a[1]) # ⇒ 1-2

In ähnlicher Weise kann in Java das Element mth (1 <= m <= n) mit a.get (m -1) erhalten werden.

Java


    List<String> a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    System.out.println(a.get(1)); // ⇒ 1-2;

Holen Sie sich Größe

Verwenden Sie die len-Funktion, um die Größe der Liste zu ermitteln.

Python


    a = ["1-1", "1-2", "1-3", "1-4", "1-5"]
    print(len(a)) # ⇒ 5

Java verwendet die Größenmethode.

Java


    List<String> a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    System.out.println(a.size()); // ⇒ 5

Beitrittsliste

Das Verbinden von Listen in Python verwendet den Operator +. Diese Funktion verbindet die Listen, um eine neue Liste zu erstellen. Daher hat dies keine Auswirkungen auf die ursprüngliche Liste.

Python


    a = ["1-1", "1-2", "1-3", "1-4", "1-5"]
    b = ["2-1", "2-2", "2-3", "2-4", "2-5"]
    print(a + b) # ⇒ ['1-1', '1-2', '1-3', '1-4', '1-5', '2-1', '2-2', '2-3', '2-4', '2-5']
    print(a) # ⇒ ['1-1', '1-2', '1-3', '1-4', '1-5']
    print(b) # ⇒ ['2-1', '2-2', '2-3', '2-4', '2-5']

In Java scheint es keinen sehr guten Weg zu geben. Es scheint, dass ich keine andere Wahl habe, als alle Elemente a und b zur neuen Liste hinzuzufügen.

Java


    List<String> a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    List<String> b = new ArrayList<String>(Arrays.asList(new String[]{"2-1", "2-2", "2-3", "2-4", "2-5"}));
    List<String> c = new ArrayList<String>();
    c.addAll(a);
    c.addAll(b);
    System.out.println(c); // ⇒ [1-1, 1-2, 1-3, 1-4, 1-5, 2-1, 2-2, 2-3, 2-4, 2-5]

Fügen Sie der Liste ein Element hinzu

Es gibt zwei Möglichkeiten, ein Element zu einer Liste hinzuzufügen: Hinzufügen eines Elements und Hinzufügen einer Liste zur gesamten Liste. Verwenden Sie zunächst die Methoden zum Anhängen und Einfügen, um ein Element hinzuzufügen. Anhängen fügt am Ende der Liste ein Element hinzu. Einfügen fügt das Element an der angegebenen Indexposition hinzu.

Python


    a = ["1-1", "1-2", "1-3", "1-4", "1-5"]
    #Fügen Sie es am Ende der Liste hinzu.
    a.append("1-7")
    print(a) # ⇒ ['1-1', '1-2', '1-3', '1-4', '1-5', '1-7']
    #Fügt dem angegebenen Indexspeicherort hinzu.
    a.insert(5, "1-6")
    print(a) # ⇒ ['1-1', '1-2', '1-3', '1-4', '1-5', '1-6', '1-7']

In Java verwenden beide die Methode add.

Java


    List<String> a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    a.add("1-7");
    System.out.println(a); // ⇒ [1-1, 1-2, 1-3, 1-4, 1-5, 1-7]
    a.add(5, "1-6");
    System.out.println(a); // ⇒ [1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7]

Fügen Sie dann eine Liste zur gesamten Liste hinzu. Verwenden Sie die Extend-Methode. Sie können alle Elemente der Liste hinzufügen, indem Sie die Liste als Argument angeben.

Python


    a = ["1-1", "1-2", "1-3", "1-4", "1-5"]
    b = ["2-1", "2-2", "2-3", "2-4", "2-5"]
    a.extend(b)
    print(a) # ⇒ ['1-1', '1-2', '1-3', '1-4', '1-5', '2-1', '2-2', '2-3', '2-4', '2-5']

Ich habe es bereits in Java geschrieben, aber Sie können es mithilfe der addAll-Methode hinzufügen.

Java


    List<String> a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    List<String> b = new ArrayList<String>(Arrays.asList(new String[]{"2-1", "2-2", "2-3", "2-4", "2-5"}));
    a.addAll(b);
    System.out.println(a); // ⇒ [1-1, 1-2, 1-3, 1-4, 1-5, 2-1, 2-2, 2-3, 2-4, 2-5]

Ist das Element enthalten

Verwenden Sie "in", um festzustellen, ob sich ein Element in der Liste befindet. True wird zurückgegeben, wenn es existiert, False, wenn es nicht existiert.

Python


    a = ["1-1", "1-2", "1-3", "1-4", "1-5", ["1-2", "1-3"]]
    print("1-2" in a) # ⇒ True
    print("1-6" in a) # ⇒ False
    #Sie können auch wie folgt überprüfen, ob die Liste in der Liste vorhanden ist.
    print(["1-2", "1-3"] in a) # ⇒ True

Java verwendet die Methode includes.

Java


    a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    System.out.println(a.contains("1-2")); // ⇒ true
    System.out.println(a.contains("1-6")); // ⇒ false

Elemente ausschneiden

Um ein Element auszuschneiden, geben Sie es wie eine Zeichenfolge im Format [n: m] an.

Python


    a = ["1-1", "1-2", "1-3", "1-4", "1-5"]
    #Index 2 bis Index 4 (4 nicht enthalten)
    print(a[2:4]) # ⇒ ['1-3', '1-4']
    #Vom Index 2 bis zum Ende
    print(a[2:]) # ⇒ ['1-3', '1-4', '1-5']
    #Bis zu Index 4 (4 nicht enthalten)
    print(a[:4]) # ⇒ ['1-1', '1-2', '1-3', '1-4']
    #Holen Sie sich alle zwei
    print(a[::2]) # ⇒ ['1-1', '1-3', '1-5']

Java verwendet die subList-Methode. Die Argumente sind der Schnittstartindex und der Endindex (nicht enthalten).

Java


    List<String> a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    //Index 2 bis Index 4 (4 nicht enthalten)
    System.out.println(a.subList(2, 4)); // ⇒ [1-3, 1-4]
    //Vom Index 2 bis zum Ende
    System.out.println(a.subList(2, a.size())); // ⇒ [1-3, 1-4, 1-5]
    //Bis zu Index 4 (4 nicht enthalten)
    System.out.println(a.subList(0, 4)); // ⇒ [1-1, 1-2, 1-3, 1-4]
    //Ist es unmöglich, alle zwei zu erhalten, wenn Filter nicht mit Stream angewendet wird?

Taple

Als nächstes werde ich den Tapple erklären. Ein Tupel ist eine Liste, deren Inhalt nicht geändert werden kann. Daher führt die Verwendung einer Methode zum Ändern eines Elements, das kein Taple ist, zu einem Fehler. Wenn Sie es nicht ändern, tritt kein Fehler auf. Es ist auch möglich, den Taple selbst zur Liste hinzuzufügen.

Python


    a = ("1-1", "1-2", "1-3", "1-4", "1-5")
    a.append("1-6") # ⇒ AttributeError: 'tuple' object has no attribute 'append'
    c = ["1-1"];
    c.extend(a)
    print(c) # ⇒ ['1-1', '1-1', '1-2', '1-3', '1-4', '1-5']

Listen, die in Java nicht geändert werden können, können mit Collections.unmodizableList erstellt werden. Natürlich können Sie Ihre eigene Klasse erstellen. Sie können auch eine unveränderliche Karte in der Collections-Klasse erstellen. Wenn Sie also Zeit haben, können Sie einen Blick darauf werfen.

Java


    List<String> a = new ArrayList<String>(Arrays.asList(new String[]{"1-1", "1-2", "1-3", "1-4", "1-5"}));
    List<String> unmodifList = Collections.unmodifiableList(a);
    unmodifList.add("1-1"); // ⇒ UnsupportedOperationException

Wörterbuch

Wie eine Liste ist es ein Sammlungstyp, aber im Gegensatz zu einer Liste hat sie keine Reihenfolge. Stattdessen wird der Wert durch den Schlüssel und den entsprechenden Wert verwaltet. Die Deklarationsmethode besteht darin, sie in Wellenklammern ({}) einzuschließen und Schlüssel und Wert durch einen Doppelpunkt (:) getrennt zu deklarieren. Trennen Sie sie mit einem Komma (,), um die folgenden Werte zu deklarieren.

Python


    a = {"key" : "value", "A" : "13 Jahre alt", "B" : "15 Jahre alt"}
    print(a) # ⇒ {'key': 'value', 'A': '13 Jahre alt', 'B': '15 Jahre alt'}

Es ist eine Karte in Java. Es gibt keine Möglichkeit, den Anfangswert in Java Map festzulegen.

Java


    Map<String, String> map = new HashMap<String, String>();
    System.out.println(map); // ⇒{}

Element hinzufügen

Es gibt keine Methode, um dem Wörterbuchtyp ein Element hinzuzufügen. Fügen Sie hinzu, indem Sie den Schlüssel und den Wert für die Variable des Wörterbuchtyps direkt angeben.

Python


    a = {"key" : "value", "A" : "13 Jahre alt", "B" : "15 Jahre alt"}
    a["C"] = "16 Jahre alt"
    print(a)  # ⇒ {'key': 'value', 'A': '13 Jahre alt', 'B': '15 Jahre alt', 'C': '16 Jahre alt'}

Verwenden Sie die Put-Methode in Java.

Java


    Map<String, String> map = new HashMap<String, String>();
    map.put("A", "13 Jahre alt");
    map.put("B", "15 Jahre alt");
    map.put("C", "16 Jahre alt");
    System.out.println(map); // ⇒{A=13 Jahre alt, B=15 Jahre alt, C=16 Jahre alt}

Existiert der Schlüssel?

Verwenden Sie "in", um zu überprüfen, ob ein Schlüssel in einer Variablen vom Typ Wörterbuch vorhanden ist.

Python


    a = {"key" : "value", "A" : "13 Jahre alt", "B" : "15 Jahre alt"}
    print("A" in a)  # ⇒ True
    print("C" in a)  # ⇒ False

Java verwendet die includesKey-Methode. Es gibt auch eine includesValue-Methode, mit der Sie überprüfen können, ob sie in einem anderen Wert als dem Schlüssel enthalten ist. Es scheint keine Methode zu geben, die enthältValue in Python entspricht.

Java


    Map<String, String> map = new HashMap<String, String>();
    map.put("A", "13 Jahre alt");
    map.put("B", "15 Jahre alt");
    System.out.println(map.containsKey("A")); // ⇒ true
    System.out.println(map.containsKey("C")); // ⇒ false
    System.out.println(map.containsValue("15 Jahre alt")); // ⇒ true
    System.out.println(map.containsValue("16 Jahre alt")); // ⇒ false

Wert erhalten

Verwenden Sie die get-Methode, um den Wert abzurufen. Die get-Methode gibt den Schlüssel zum Abrufen des Value-Werts an. Wenn der Schlüssel nicht vorhanden ist, wird None zurückgegeben. Wenn der Schlüssel nicht vorhanden ist, fällt es Ihnen möglicherweise schwer, None zurückzugeben. Setzen Sie in diesem Fall den Standardwert im zweiten Argument von get. Wenn der Schlüsselwert vorhanden ist, wird der angegebene Standardwert zurückgegeben.

Python


    a = {"key" : "value", "A" : "13 Jahre alt", "B" : "15 Jahre alt"}
    print(a.get("A"))  #⇒ 13 Jahre alt
    print(a.get("C"))  # ⇒ None
    print(a.get("A", "10 Jahre alt ist"))  #⇒ 13 Jahre alt
    print(a.get("C", "10 Jahre alt ist"))  # ⇒ 10 Jahre alt ist

Java verwendet auch die get-Methode, um den dem Schlüssel entsprechenden Wert abzurufen. Wenn Sie einen Standardwert festlegen und abrufen möchten, verwenden Sie die Methode getOrDefault. Die Verwendung entspricht der Angabe des Standardwerts von Python. Diese Methode wurde aus Java 8 hinzugefügt. Danke, dass du nüchtern bist.

Java


    Map<String, String> map = new HashMap<String, String>();
    map.put("A", "13 Jahre alt");
    map.put("B", "15 Jahre alt");
    System.out.println(map.get("A")); //⇒ 13 Jahre alt
    System.out.println(map.get("C")); // ⇒ null
    System.out.println(map.getOrDefault("A", "10 Jahre alt ist")); //⇒ 13 Jahre alt
    System.out.println(map.getOrDefault("C", "10 Jahre alt ist")); // ⇒ null

Holen Sie sich alle Schlüssel

Wenn Sie alle Schlüssel im Wörterbuch registrieren möchten, verwenden Sie die Schlüsselmethode. Der registrierte Schlüssel wird in einem Listenformat zurückgegeben. Die Bestellung ist jedoch nicht garantiert. Ich dachte, aber eine Klasse namens dict_keys wurde zurückgegeben. Um dies nutzen zu können, müssen Sie die for-Anweisung verwenden.

Python


    a = {"A" : "13 Jahre alt", "B" : "15 Jahre alt"}
    print(a.keys())  # ⇒ dict_keys(['A', 'B'])
    for key in a.keys():
        print(key)# ⇒ 'A'Wann'B'

Verwenden Sie in Java die keySet-Methode. Diese Methode gibt ein Keyset in der Set-Klasse zurück.

Java


    Map<String, String> map = new HashMap<String, String>();
    map.put("A", "13 Jahre alt");
    map.put("B", "15 Jahre alt");
    System.out.println(map.keySet()); // ⇒ [A, B]
    for (String s : map.keySet()) {
        System.out.println(s); // ⇒ A, B
    }

Holen Sie sich alle Werte

Wenn Sie die Werte im Wörterbuch registrieren möchten, verwenden Sie die Methode values. Eine Klasse namens dict_values wird zurückgegeben. Um dies nutzen zu können, müssen Sie die for-Anweisung verwenden.

Python


    a = {"A" : "13 Jahre alt", "B" : "15 Jahre alt"}
    print(a.values())  # ⇒ dict_values(['13 Jahre alt', '15 Jahre alt'])
    for value in a.values():
        print(value) # ⇒ '13 Jahre alt'Wann'15 Jahre alt'

Verwenden Sie in Java die keySet-Methode. Diese Methode gibt ein Keyset in der Set-Klasse zurück.

Java


    Map<String, String> map = new HashMap<String, String>();
    map.put("A", "13 Jahre alt");
    map.put("B", "15 Jahre alt");
    System.out.println(map.values()); // ⇒ [13 Jahre alt,15 Jahre alt]
    for (String s : map.values()) {
        System.out.println(s); //⇒ 13 Jahre alt,15 Jahre alt
    }

Holen Sie sich alle Schlüssel und Werte

Wenn Sie den Schlüssel und den Wert im Wörterbuch registrieren möchten, verwenden Sie die Methode items. Eine Klasse namens dict_items wird zurückgegeben. Um dies nutzen zu können, müssen Sie die for-Anweisung verwenden.

Python


    a = {"A" : "13 Jahre alt", "B" : "15 Jahre alt"}
    print(a.items())  # ⇒ dict_items([('A', '13 Jahre alt'), ('B', '15 Jahre alt')])
    for key, value in a.items():
        print(key, value) #⇒ 13 Jahre alt,B 15 Jahre alt

Verwenden Sie in Java die Methode entrySet. Diese Methode gibt einen Schlüssel und einen Werteintrag in der Set-Klasse zurück.

Java


    Map<String, String> map = new HashMap<String, String>();
    map.put("A", "13 Jahre alt");
    map.put("B", "15 Jahre alt");
    System.out.println(map.entrySet()); // ⇒ [A=13 Jahre alt, B=15 Jahre alt]
    for (Entry<String, String> e : map.entrySet()) {
        System.out.println(e.getKey()); // ⇒ A, B
        System.out.println(e.getValue()); //⇒ 13 Jahre alt,15 Jahre alt
    }

Wörterbuchergänzung

Es scheint, dass die von values (), keys (), items () zurückgegebenen Objekte Ansichtsobjekte sind. Das Ansichtsobjekt bietet eine dynamische Ansicht der Elemente im Wörterbuch, aber es scheint, dass sich der Wert der Ansicht ändert, wenn sich der Wert des ursprünglichen Wörterbuchs ändert.

Python


a = {"A" : "13 Jahre alt", "B" : "15 Jahre alt"}
items = a.items()
print(items) # ⇒ dict_items([('A', '13 Jahre alt'), ('B', '15 Jahre alt')])
#Durch Hinzufügen von Elementen werden die Elemente des Ansichtsobjekts vergrößert
a["C"] = "16 Jahre alt"
print(items) # ⇒ dict_items([('A', '13 Jahre alt'), ('B', '15 Jahre alt'), ('C', '16 Jahre alt')])
#Wenn Sie das Element löschen, verschwindet auch das Element des Ansichtsobjekts
a.pop("A")
print(items) # ⇒ dict_items([('B', '15 Jahre alt'), ('C', '16 Jahre alt')])
#Wenn Sie das Element ändern, ändert sich auch das Element des Ansichtsobjekts
a["B"] = "14 Jahre alt"
print(items) # ⇒ dict_items([('B', '14 Jahre alt'), ('C', '16 Jahre alt')])

das ist alles. Insgesamt denke ich, dass Python einfacher zu schreiben ist.

Recommended Posts

Python3 | Listen, Taples, Wörterbücher
Python-Liste, Tapple, Wörterbuch
Python> Tupel versus Listen
Speichern Sie Listen, Wörterbücher und Tabellen in externen Python-Dateien
Verstehen Sie Python-Listen, Wörterbücher und so weiter.
[Einführung in Python3 Tag 7] Kapitel 3 Py Tools: Listen, Taples, Wörterbücher, Mengen (3.3-3.8)
[Einführung in Python3 Tag 5] Kapitel 3 Py Tools: Listen, Taples, Wörterbücher, Sets (3.1-3.2.6)
[Einführung in Python3 Tag 6] Kapitel 3 Py-Tool-Liste, Tapple, Wörterbuch, Set (3.2.7-3.2.19)
[Kurzer Satz] [Python] Listen und Wörterbücher formatieren und drucken
Wie Taple funktioniert | Python
Bearbeiten von Python-Zeichenlisten (Arrays)
Python-Grundkurs (5 List Taple)
Python-Liste und Tapples und Kommas
Paiza Python Primer 5: Grundlagen von Wörterbüchern
Neu in Python3.9 Wörterbücher zusammenführen
Python
Suchen Sie in Python nach speicherintensiven Listen / Arrays
Einfache Handhabung von Listen mit Python + SQLite3
Machen Sie Python-Wörterbücher als Attribute zugänglich
Gemischte Positionsargumente, Tippen und Wörterbuch
[Python] Kapitel 04-06 Verschiedene Datenstrukturen (Erstellung eines Wörterbuchs)
Alternative: Machen Sie Python-Wörterbücher als Attribute zugänglich
Bearbeiten von Python-Zeichenlisten (Arrays)
[Python-Anfänger] Verbinden Sie zwei Listen abwechselnd (5 Zeilen).
Verarbeiten Sie mehrere Listen mit for in Python