[Einführung in Python3 Tag 10] Kapitel 5 Py's Cosmetic Box: Module, Pakete, Programme (5.4-5.7)

5.5 Python-Standardbibliothek

5.5.1 Umgang mit nicht vorhandenen Schlüsseln mit setdefault () und defaultdict ()


>>> periodic_table={"Hydrogen":1,"Helium":2}
>>> print(periodic_table)
{'Hydrogen': 1, 'Helium': 2}
#Befindet sich der Schlüssel nicht im Wörterbuch, wird er mit dem neuen Wert hinzugefügt.
>>> carbon=periodic_table.setdefault("Carbon",12)
>>> carbon
12
#Wenn Sie versuchen, einem vorhandenen Schlüssel einen anderen Standardwert zuzuweisen, wird der ursprüngliche Wert zurückgegeben und das Wörterbuch nicht geändert.
>>> helium=periodic_table.setdefault("Helium",457)
>>> helium
2
>>> print(periodic_table)
{'Hydrogen': 1, 'Helium': 2, 'Carbon': 12}


#Importieren Sie defaultdict aus Modulsammlungen.
>>> from collections import defaultdict
#Standardwert für nicht vorhandene Schlüssel(int)Ist eingestellt.
>>> periodic_table=defaultdict(int)
>>> periodic_table["Hydrogen"]=1
#Für einen nicht vorhandenen Schlüssel wird ein Standardwert zurückgegeben.
>>> periodic_table["Lead"]
0
>>> periodic_table
defaultdict(<class 'int'>, {'Hydrogen': 1, 'Lead': 0})


#Importieren Sie defaultdict aus Modulsammlungen
>>> from collections import defaultdict
>>> 
>>> def no_idea():
...     return "Huh?"
... 
>>> bestiary = defaultdict(no_idea)
>>> bestiary["a"]= "A"
>>> bestiary["b"]= "B"
>>> bestiary["a"]
'A'
>>> bestiary["b"]
'B'

#Wenn Sie einen Schlüssel eingeben, der nicht vorhanden ist, wird die durch das Argument defaultdict angegebene Funktion aufgerufen und der Wert zurückgegeben.
>>> bestiary["c"]
'Huh?'
>>> bestiary["v"]
'Huh?'

#defaultdict()Definieren Sie die Standarderstellungsfunktion im Aufruf
>>> bestiary=defaultdict(lambda:"Huh?")
>>> bestiary["E"]
'Huh?'

#int kann eine Möglichkeit sein, einen eigenen Zähler zu erstellen.
>>> from collections import defaultdict
>>> food_counter=defaultdict(int)
>>> for food in ["spam","spam","eggs","spam"]:
...     food_counter[food]+=1
... 
>>> for food,count in food_counter.items():
...     print(food,count)
... 
spam 3
eggs 1

5.5.2 Berechnung der Anzahl der Elemente durch Counter ()


>>> breakfast=["spam","spam","eggs","spam"]
>>> breakfast_counter=Counter(breakfast)
>>> breakfast_counter
Counter({'spam': 3, 'eggs': 1})
#most_common()Die Funktion gibt alle Elemente in absteigender Reihenfolge zurück.
>>> breakfast_counter.most_common()
[('spam', 3), ('eggs', 1)]
#most_common()Wenn eine Ganzzahl als Argument angegeben wird, zählt die Funktion von oben und zeigt die Nummer an.
>>> breakfast_counter.most_common(1)
[('spam', 3)]
>>> breakfast_counter
Counter({'spam': 3, 'eggs': 1})

>>> lunch=["eggs","eggs","bacon"]
>>> lunch_counter=Counter(lunch)
>>> lunch_counter
Counter({'eggs': 2, 'bacon': 1})
#Zähler kombinieren
>>> lunch_counter+breakfast_counter
Counter({'eggs': 3, 'spam': 3, 'bacon': 1})
#Gegenunterschied Artikel, die zum Mittagessen, aber nicht zum Frühstück verwendet werden.
>>> lunch_counter-breakfast_counter
Counter({'eggs': 1, 'bacon': 1})
#Gegenunterschied Was wird beim Frühstück verwendet, aber nicht beim Mittagessen.
>>> breakfast_counter-lunch_counter
Counter({'spam': 3})
#Produktsatzoperator Die allgemeine Nummer ist 1.
>>> breakfast_counter & lunch_counter
Counter({'eggs': 1})
#Summensatzoperator: Verwenden Sie den größeren Zählerwert.
>>> breakfast_counter | lunch_counter
Counter({'spam': 3, 'eggs': 2, 'bacon': 1})

5.5.3 Sortierung der Schlüsselreihenfolge nach OrderdDict ()

--OrderedDict () gibt die Schlüssel vom Iterator in derselben Reihenfolge zurück.


>>> quotes={
...     "M":"A",
...     "L":"O",
...     "C":"N",
...     }
>>> for s in quotes:
...     print(s)
... 
M
L
C

>>> from collections import OrderedDict
>>> quotes=OrderedDict([
...     ("M","A"),
...     ("L","C"),
...     ("C","N"),
...     ])
>>> 

5.5.4 Stapel + Warteschlange = Deck

--duque ist eine Warteschlange mit zwei Enden, die sowohl Stapel- als auch Warteschlangenfunktionen hat. Sie können Elemente an beiden Enden der Sequenz hinzufügen oder entfernen.


>>> def palindrome(word):
...     from collections import deque
...     dq=deque(word)
...     while len(dq)>1:
#popleft()Löscht das Element ganz links und gibt pop zurück()Ist eine Funktion, die das Element ganz rechts löscht und zurückgibt.
...         if dq.popleft()!=dq.pop():
...             return False
...     return True
... 
>>> palindrome("a")
True
>>> palindrome(" ")
True
>>> palindrome("racecar")
True
>>> palindrome("halibut")
False

#Es ist einfacher, Zeichenfolgen in umgekehrter Reihenfolge zu vergleichen.
>>> def another_palindrome(word):
...     return word==word[::-1]
... 
>>> another_palindrome("racecar")
True
>>> another_palindrome("halibut")
False

5.5.5 Iterieren der Codestruktur mit itertools

--itertools enthält itertool-Funktionen für spezielle Zwecke.


#chain()Behandelt das gesamte Argument wie ein iterierbares und durchläuft es.
>>> import itertools
>>> for item in itertools.chain([1,2],["a","b"]):
...     print(item)
... 
1
2
a
b

#cycle()Ist ein unendlicher Iterator, der Elemente zyklisch aus seinen Argumenten zurückgibt.
>>> import itertools
>>> for item in itertools.cycle([1,2]):
...     print(item)
... 
1
2
1
2
1
2
1
2
1
2
1
2
1
2

#accumulate()Berechnet den Wert der Elemente in einem. Standardmäßig wird die Summe berechnet.
>>> import itertools
>>> for item in itertools.accumulate([1,2,3,4]):
...     print(item)
... 
1
3
6
10

##accumulate()Akzeptiert eine Funktion als zweites Argument, und dieses Argument wird anstelle der Addition verwendet.
>>> import itertools
>>> def multiply(a,b):
...     return a*b
... 
>>> for item in itertools.accumulate([1,2,3,4],multiply):
...     print(item)
... 
1
2
6
24

5.5.6 Schöne Anzeige von pprint ()

--print () versucht, die Elemente zur besseren Lesbarkeit auszurichten.


>>> from pprint import pprint
>>> q=OrderedDict([
...     ("Moe","A wise guy,huh?"),
...     ("Larry","Ow!"),
...     ("Curly","Nuyk nyuk!"),
...     ])
>>> 
#Weiter anzeigen.
>>> print(q)
OrderedDict([('Moe', 'A wise guy,huh?'), ('Larry', 'Ow!'), ('Curly', 'Nuyk nyuk!')])

#Richten Sie die Elemente aus und zeigen Sie sie an.
>>> pprint(q)
OrderedDict([('Moe', 'A wise guy,huh?'),
             ('Larry', 'Ow!'),
             ('Curly', 'Nuyk nyuk!')])


5.7 Zuordnung überprüfen

5-1 Erstellen Sie eine Datei mit dem Namen zoo.py und zeigen Sie die Zeichenfolge Open 9-5 täglich darin an. Definieren wir die Stunden () -Funktion. Als nächstes importieren wir das Zoomodul mit dem interaktiven Interpreter und rufen dessen Stunden () -Funktion auf.

zop.py



def hours():
    print("Open 9-5 daily")

Ergebnis



>>> import zoo
>>> zoo.hours()
Open 9-5 daily

5-2 Importieren Sie das Zoo-Modul mit der Namensmenagerie in den interaktiven Interpreter und rufen Sie dessen Stunden () -Funktion auf.


#Importieren Sie den Modulzoo als Menagerie
>>> import zoo as menagerie
>>> menagerie.hours()
Open 9-5 daily

5-3 Bleiben wir im interaktiven Interpreter und importieren und rufen direkt die Stunden () -Funktion des Zoos auf.


>>> from zoo import hours
>>> hours()
Open 9-5 daily

5-4 Stunden () Importieren Sie die Funktion mit den Namensinformationen und rufen Sie sie auf.


>>> from zoo import hours as info
>>> info()
Open 9-5 daily

5-5 Erstellen Sie ein Wörterbuch mit dem Namen plain mit den Schlüssel / Wert-Paaren "a": 1, "b": 2, "c": 3 und zeigen Sie den Inhalt an.


>>> plain={"a":1,"b":2,"c":3}
>>> plain
{'a': 1, 'b': 2, 'c': 3}

5-6 Erstellen Sie ein OrderedDict mit dem Namen fantasie aus demselben Paar wie oben 5-5 und zeigen Sie dessen Inhalt an. Wurde es in derselben Reihenfolge wie normal angezeigt?


>>> from collections import OrderedDict
>>> fancy=OrderedDict([("a",1),("b",2),("c",3)])
>>> fancy
OrderedDict([('a', 1), ('b', 2), ('c', 3)])


5-7 Erstellen Sie ein Standard-Diktat mit dem Namen dict_of_lists und übergeben Sie das Listenargument. Erstellen Sie als Nächstes in einer Operation eine Liste mit dem Namen dict_of_lists ["a"] und fügen Sie den Wert "etwas für a" hinzu. Zum Schluss zeigen wir dict_of_lists ["a"] an.


>>> from collections import defaultdict
>>> dict_of_lists=defaultdict(list)
>>> dict_of_lists["a"]=["something for a"]
>>> dict_of_lists["a"]
['something for a']

Impressionen

Endlich haben wir die zweite Spielhälfte erreicht. Ich habe angefangen, Kapitel 6 zu machen, aber das Konzept von Objekten und Klassen kam heraus. Ich werde morgen weiterhin mein Bestes geben.

Verweise

"Einführung in Python3 von Bill Lubanovic (veröffentlicht von O'Reilly Japan)"

Recommended Posts

[Einführung in Python3 Tag 10] Kapitel 5 Py's Cosmetic Box: Module, Pakete, Programme (5.4-5.7)
[Einführung in Python3 Tag 9] Kapitel 5 Py's Cosmetic Box: Module, Pakete, Programme (5.1-5.4)
[Einführung in Python3 Tag 13] Kapitel 7 Zeichenfolgen (7.1-7.1.1.1)
[Einführung in Python3 Tag 14] Kapitel 7 Zeichenfolgen (7.1.1.1 bis 7.1.1.4)
[Einführung in Python3 Tag 15] Kapitel 7 Zeichenfolgen (7.1.2-7.1.2.2)
[Einführung in Python3 Tag 21] Kapitel 10 System (10.1 bis 10.5)
[Einführung in Python3 Tag 19] Kapitel 8 Datenziele (8.4-8.5)
[Einführung in Python3 Tag 18] Kapitel 8 Datenziele (8.3.6.2 bis 8.3.6.3)
[Einführung in Python3 Tag 12] Kapitel 6 Objekte und Klassen (6.3-6.15)
[Einführung in Python3, Tag 22] Kapitel 11 Parallele Verarbeitung und Vernetzung (11.1 bis 11.3)
[Einführung in Python3 Tag 11] Kapitel 6 Objekte und Klassen (6.1-6.2)
[Einführung in Python3, Tag 23] Kapitel 12 Werden Sie Paisonista (12.1 bis 12.6)
[Einführung in Python3 Tag 20] Kapitel 9 Enträtseln des Webs (9.1-9.4)
[Einführung in Python3 Tag 8] Kapitel 4 Py Skin: Codestruktur (4.1-4.13)
[Einführung in Python3 Tag 3] Kapitel 2 Py-Komponenten: Numerische Werte, Zeichenfolgen, Variablen (2.2 bis 2.3.6)
[Einführung in Python3 Tag 2] Kapitel 2 Py-Komponenten: Numerische Werte, Zeichenfolgen, Variablen (2.1)
[Einführung in Python3 Tag 4] Kapitel 2 Py-Komponenten: Numerische Werte, Zeichenfolgen, Variablen (2.3.7 bis 2.4)
[Einführung in Python3 Tag 1] Programmierung und Python
[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)
Einführung in die Überprüfung der Wirksamkeit Kapitel 1 in Python geschrieben
Einführung in die Überprüfung der Wirksamkeit Kapitel 3 in Python geschrieben
Einführung in die Überprüfung der Wirksamkeit Kapitel 2 in Python geschrieben
Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-
Python-Pakete und -Module
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Technisches Buch] Einführung in die Datenanalyse mit Python -1 Kapitel Einführung-
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Einführung in das elektronische Papiermodul
Lernen Sie Python-Pakete und -Module kennen
Einführung in die serielle Kommunikation [Python]
[Einführung in Python] <Liste> [Bearbeiten: 22.02.2020]
Einführung in Python (Python-Version APG4b)
Eine Einführung in die Python-Programmierung
Einführung in Python For, While
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 10 Einführung in Cupy
Ich las "Das Lernen mit Python von der Einführung bis zur Praxis stärken", Kapitel 1
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
Ich las "Das Lernen mit Python von der Einführung bis zur Praxis stärken", Kapitel 2
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
Einführung in die Python Numerical Calculation Library NumPy
Trainieren! !! Einführung in Python Type (Type Hints)
[Einführung in Python] <numpy ndarray> [edit: 2020/02/22]
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
Einführung in Python Hands On Teil 1
[Einführung in Python] So analysieren Sie JSON
[Einführung in die Udemy Python3 + -Anwendung] 56. Abschluss
Einführung in Protobuf-c (C-Sprache ⇔ Python)
[Einführung in die Udemy Python3 + -Anwendung] 59. Generator
Python-Grundkurs (14 Module und Pakete)
[Einführung in Python] Verwenden wir Pandas
[Einführung in Python] Verwenden wir Pandas
[Einführung in die Udemy Python3 + -Anwendung] Zusammenfassung
Einführung in die Bildanalyse opencv python