So verwenden Sie Listen mit Python-Wörterbüchern

php中世界最好的语言
Freigeben: 2018-04-09 17:54:17
Original
2168 Leute haben es durchsucht

Dieses Mal zeige ich Ihnen, wie Sie die Python-Wörterbuchliste verwenden und welche Vorsichtsmaßnahmen für die Verwendung der Python-Wörterbuchliste gelten. Hier ist ein praktischer Fall, nehmen wir einen sehen.

1. Verwenden Sie das Schlüsselwort in, um zu überprüfen, ob der Schlüssel existiert

Es gibt eine Entwicklungsphilosophie im Zen von Python:

Es sollte eine geben einen – und vorzugsweise nur einen – offensichtlichen Weg, es zu tun.

Versuchen Sie, einen, vorzugsweise nur einen – offensichtlichen Weg zu finden, es zu tun. In Python2 können Sie die Methode has_key verwenden, um festzustellen, ob ein Schlüssel im Wörterbuch vorhanden ist. Eine andere Möglichkeit besteht darin, das Schlüsselwort in zu verwenden. Es wird jedoch dringend empfohlen, Letzteres zu verwenden, da die Methode in Python3 schneller verarbeitet wird. Wenn Sie mit den Versionen py2 und py3 kompatibel sein möchten, ist die Verwendung von in die beste Lösung Auswahl.

bad
d = {'name': 'python'}
if d.has_key('name'):
  pass
good
if 'name' in d:
  pass
Nach dem Login kopieren

2. Verwenden Sie get, um den Wert im Wörterbuch abzurufen

Um den Wert im Wörterbuch abzurufen, ist die Verwendung von d[x] eine einfache Möglichkeit. Um auf das Wertelement zuzugreifen, wird in diesem Fall jedoch ein KeyError-Fehler gemeldet, wenn der Schlüssel nicht vorhanden ist. Natürlich können Sie zuerst mit der Operation in überprüfen, ob sich der Schlüssel im Wörterbuch befindet, und ihn dann abrufen, aber diese Methode entspricht nicht dem, was im Zen von Python gesagt wird:

Einfach ist besser als komplex.
Flach ist besser als verschachtelt.

Guter Code sollte sein einfach und leicht verständlich, und eine flache Codestruktur ist besser lesbar. Wir können die get-Methode anstelle von if... else

bad
d = {'name': 'python'}
if 'name' in d:
  print(d['hello'])
else:
  print('default')
good
print(d.get("name", "default"))
Nach dem Login kopieren

3 verwenden. Verwenden Sie setdefault, um den Standardwert für den Schlüssel festzulegen, der nicht im Wörterbuch vorhanden ist

data = [
    ("animal", "bear"),
    ("animal", "duck"),
    ("plant", "cactus"),
    ("vehicle", "speed boat"),
    ("vehicle", "school bus")
  ]
Nach dem Login kopieren

Wenn Sie Klassifizierungsstatistiken erstellen, hoffen Sie, denselben Datentyp einem bestimmten Typ im Wörterbuch zuzuordnen. Der obige Code fügt beispielsweise denselben Datentyp in Form einer Liste wieder zusammen, um einen neuen zu erhalten Wörterbuch

groups = {}
>>> 
{'plant': ['cactus'], 
 'animal': ['bear', 'duck'], 
 'vehicle': ['speed boat', 'school bus']}
Nach dem Login kopieren

Die übliche Methode besteht darin, zunächst festzustellen, ob der Schlüssel bereits vorhanden ist. Wenn er nicht vorhanden ist, initialisieren Sie ihn zunächst mit dem Listenobjekt und führen Sie dann nachfolgende Vorgänge aus. Eine bessere Möglichkeit besteht darin, die setdefault-Methode im Wörterbuch zu verwenden.

bad
for (key, value) in data:
  if key in groups:
    groups[key].append(value)
  else:
    groups[key] = [value]
good
groups = {}
for (key, value) in data:
  groups.setdefault(key, []).append(value)
Nach dem Login kopieren
Die Funktion von setdefault ist:

Wenn der Schlüssel im Wörterbuch vorhanden ist, wird der entsprechende Wert direkt zurückgegeben, was der get-Methode

entspricht Wenn der Schlüssel nicht im Wörterbuch vorhanden ist, wird der zweite Parameter in setdefault als Wert des Schlüssels verwendet und dann wird der Wert zurückgegeben.

4. Initialisieren Sie das Wörterbuchobjekt mit defaultdict

Wenn Sie nicht möchten, dass d[x] einen Fehler meldet, wenn x nicht vorhanden ist, zusätzlich zur Verwendung von get-Methode beim Abrufen von Elementen. Eine andere Möglichkeit besteht darin, defaultdict im Sammlungsmodul zu verwenden und beim Initialisieren des Wörterbuchs eine Funktion anzugeben. Tatsächlich ist defaultdict eine Unterklasse von dict.

from collections import defaultdict
groups = defaultdict(list)
for (key, value) in data:
  groups[key].append(value)
Nach dem Login kopieren
Wenn der Schlüssel nicht im Wörterbuch vorhanden ist, wird die Listenfunktion aufgerufen und gibt eine leere Liste zurück, die d[Schlüssel] zugewiesen werden kann d[k] aufrufen und einen Fehler melden.

5. Verwenden Sie fromkeys, um die Liste in ein Wörterbuch umzuwandeln

keys = {'a', 'e', 'i', 'o', 'u' }
value = []
d = dict.fromkeys(keys, value)
print(d)
>>>
{'i': [], 'u': [], 'e': [], 
 'a': [], 'o': []}
Nach dem Login kopieren

6. Verwenden Sie ein Wörterbuch, um switch zu implementieren. .. case-Anweisung

Es gibt keinen Schalter... case-Anweisung in Python Onkel Turtle, der Vater von Python, sagte, dass diese Syntax in der Vergangenheit nicht existierte, jetzt nicht existiert und wird es in Zukunft nicht mehr geben. Weil die prägnante Syntax von Python mit if ... elif implementiert werden kann. Wenn es zu viele Zweigurteile gibt, können Sie stattdessen auch ein Wörterbuch verwenden.

if arg == 0:
  return 'zero'
elif arg == 1:
  return 'one'
elif arg == 2:
  return "two"
else:
  return "nothing"
good
data = {
  0: "zero",
  1: "one",
  2: "two",
}
data.get(arg, "nothing")
Nach dem Login kopieren

7. Verwenden Sie iteritems, um die Elemente im Wörterbuch zu iterieren.

Python bietet mehrere Möglichkeiten, die Elemente im Wörterbuch zu iterieren items-Methode:

d = {
  0: "zero",
  1: "one",
  2: "two",
}
for k, v in d.items():
  print(k, v)
Nach dem Login kopieren
Die items-Methode gibt ein Listenobjekt zurück, das aus (Schlüssel, Wert) besteht. Der Nachteil dieser Methode besteht darin, dass sich der Speicher beim Durchlaufen eines sehr großen Wörterbuchs aufgrund der Liste sofort verdoppelt Das Objekt lädt alle Elemente in den Speicher.

for k, v in d.iteritems():
  print(k, v)
Nach dem Login kopieren
iteritems gibt ein Iteratorobjekt zurück. Der Wert wird nur dann generiert, wenn er tatsächlich geladen wird Diese Methode benötigt keinen zusätzlichen Speicher, um diese Daten während des Iterationsprozesses zu laden. Beachten Sie, dass es in Python3 nur die Items-Methode gibt, die iteritems in Python2 entspricht, und der Methodenname iteritems entfernt wurde.

8. Verwenden Sie die Wörterbuchableitung

推导式是个绝妙的东西,列表推导式一出,map、filter等函数黯然失色,自 Python2.7以后的版本,此特性扩展到了字典和集合身上,构建字典对象无需调用 dict 方法。

bad
numbers = [1,2,3]
d = dict([(number,number*2) for number in numbers])
good
numbers = [1, 2, 3]
d = {number: number * 2 for number in numbers}
Nach dem Login kopieren

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Python中怎样把矩阵转换为列表

Python连接MySQL的方式总结

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Listen mit Python-Wörterbüchern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!