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.
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.
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;
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
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]
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]
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
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?
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
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); // ⇒{}
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}
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
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
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
}
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
}
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
}
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